Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / NomadNet.git / files / nomadnet / ui / textui / Conversations.py

Displaying Raw • Download


nomadnet/ui/textui/Conversations.py af74a326a986a9be79d59c163849cadce4be862d (af74a326) Text, 83.81 KB

Tff7b72import T7ee787RNS
Tff7b72import T7ee787collections
Tff7b72import T7ee787os
Tff7b72import T7ee787shutil
Tff7b72import T7ee787time
Tff7b72import T7ee787nomadnet
Tff7b72import T7ee787LXMF

Tff7b72import T7ee787urwid

Tff7b72from T7ee787datetime Tff7b72import Te6edf3datetimeTb4b4b4, Te6edf3timedelta
Tff7b72from T7ee787nomadnetT7ee787.T7ee787Directory Tff7b72import Te6edf3DirectoryEntry
Tff7b72from T7ee787nomadnetT7ee787.T7ee787Conversation Tff7b72import Te6edf3ConversationMessage

Tff7b72from T7ee787nomadnetT7ee787.T7ee787util Tff7b72import Te6edf3strip_modifiers
Tff7b72from T7ee787nomadnetT7ee787.T7ee787util Tff7b72import Te6edf3sanitize_name

Tff7b72from T7ee787RNST7ee787.T7ee787UtilitiesT7ee787.T7ee787rngitT7ee787.T7ee787util Tff7b72import Te6edf3MarkdownToMicron
Tff7b72from T7ee787RNST7ee787.T7ee787UtilitiesT7ee787.T7ee787rngitT7ee787.T7ee787highlight Tff7b72import Te6edf3SyntaxHighlighter
Tff7b72from T7ee787.T7ee787MicronParser Tff7b72import Te6edf3markup_to_attrmaps
Tff7b72from T7ee787nomadnetT7ee787.T7ee787util Tff7b72import Te6edf3strip_modifiersTb4b4b4, Te6edf3strip_micronTb4b4b4, Te6edf3strip_escaped_micronTb4b4b4, Te6edf3unescape_micronTb4b4b4, Te6edf3strip_non_formatting_tags
Tff7b72from T7ee787nomadnetT7ee787.T7ee787ui Tff7b72import Te6edf3THEME_DARKTb4b4b4, Te6edf3THEME_LIGHT

Tff7b72def Td2a8ffrelative_timeTb4b4b4(Te6edf3timestampTb4b4b4)Tb4b4b4:
Te6edf3now Tff7b72= Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)
Te6edf3delta Tff7b72= Te6edf3now Tff7b72- Te6edf3timestamp
Tff7b72if Te6edf3delta Tff7b72< T79c0ff0Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ffjust nowTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff60Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ffjust nowTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff3600Tb4b4b4:
Te6edf3m Tff7b72= Tffa657intTb4b4b4(Te6edf3delta Tff7b72/ T79c0ff60Tb4b4b4)
Tff7b72return Tffa657strTb4b4b4(Te6edf3mTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffm agoTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff86400Tb4b4b4:
Te6edf3h Tff7b72= Tffa657intTb4b4b4(Te6edf3delta Tff7b72/ T79c0ff3600Tb4b4b4)
Tff7b72return Tffa657strTb4b4b4(Te6edf3hTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffh agoTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff172800Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ffyesterdayTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff604800Tb4b4b4:
Te6edf3d Tff7b72= Tffa657intTb4b4b4(Te6edf3delta Tff7b72/ T79c0ff86400Tb4b4b4)
Tff7b72return Tffa657strTb4b4b4(Te6edf3dTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffd agoTa5d6ff"
Tff7b72elif Te6edf3delta Tff7b72< T79c0ff2592000Tb4b4b4:
Te6edf3w Tff7b72= Tffa657intTb4b4b4(Te6edf3delta Tff7b72/ T79c0ff604800Tb4b4b4)
Tff7b72return Tffa657strTb4b4b4(Te6edf3wTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ffw agoTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3datetimeTff7b72.Td2a8fffromtimestampTb4b4b4(Te6edf3timestampTb4b4b4)Tff7b72.Td2a8ffstrftimeTb4b4b4(Ta5d6ff"Ta5d6ff%Ta5d6ffY-Ta5d6ff%Ta5d6ffm-Tffd700%dTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8ff_format_sizeTb4b4b4(Te6edf3sizeTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3size Tff7b72< T79c0ff1024Tb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Te6edf3sizeTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff BTa5d6ff"
Tff7b72elif Te6edf3size Tff7b72< T79c0ff1048576Tb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Tffa657roundTb4b4b4(Te6edf3sizeTff7b72/T79c0ff1024Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff KBTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657strTb4b4b4(Tffa657roundTb4b4b4(Te6edf3sizeTff7b72/T79c0ff1048576Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff MBTa5d6ff"


Tff7b72from T7ee787nomadnetT7ee787.T7ee787vendorT7ee787.T7ee787additional_urwid_widgets Tff7b72import Te6edf3IndicativeListBox

Tff7b72class T56d364ConversationListDisplayShortcutsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app

Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff[C-e] Peer Info [C-x] Delete [C-r] Sync [C-n] New [C-u] Ingest URI [C-o] Sort [C-g] FullscreenTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffshortcutbarTa5d6ff"Tb4b4b4)

Tff7b72class T56d364ConversationDisplayShortcutsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app

Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff[C-d] Send [C-p] Paper Msg [C-t] Title [C-a] Attach [C-s] Save [C-k] Clear [C-w] Close [C-u] Purge [C-x] Clear History [C-o] SortTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffshortcutbarTa5d6ff"Tb4b4b4)

Tff7b72class T56d364ConversationsAreaTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl eTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffedit_selected_in_directoryTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl xTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffdelete_selected_conversationTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl nTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffnew_conversationTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl uTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffingest_lxm_uriTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl rTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffsync_conversationsTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl gTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fftoggle_fullscreenTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl oTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fftoggle_list_sortTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6fftabTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffheaderTa5d6ff"
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff" Tff7b72and Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffilbTff7b72.Td2a8fffirst_item_is_selectedTb4b4b4(Tb4b4b4) Tff7b72or Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffilbTff7b72.Td2a8ffbody_is_emptyTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffheaderTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationsAreaTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)

Tff7b72class T56d364DialogLineBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffescTa5d6ff"Tb4b4b4:
Tff7b72if Tffa657hasattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTb4b4b4, Ta5d6ff"Ta5d6ffupdate_conversation_listTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72elif Tffa657hasattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTb4b4b4, Ta5d6ff"Ta5d6ffdialog_activeTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3DialogLineBoxTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)

Tff7b72class T56d364ConversationsDisplayTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3list_width Tff7b72= T79c0ff0.33
Te6edf3given_list_width Tff7b72= T79c0ff52
Te6edf3cached_conversation_widgets Tff7b72= Tb4b4b4{Tb4b4b4}

Te6edf3SORT_RECENT Tff7b72= T79c0ff0
Te6edf3SORT_NAME Tff7b72= T79c0ff1

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3appTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3app
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8fflist_sort_mode Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffSORT_RECENT

Tff7b72def Td2a8ffdisp_list_shortcutsTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3arg1Tb4b4b4, Te6edf3arg2Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffshortcuts_display Tff7b72= Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffupdate_active_shortcutsTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffupdate_listboxTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffcolumns_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(
Tb4b4b4[
T8b949e# (urwid.WEIGHT, ConversationsDisplay.list_width, self.listbox),
T8b949e# (urwid.WEIGHT, 1-ConversationsDisplay.list_width, self.make_conversation_widget(None))
Tb4b4b4(Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4, Tff7b72selfTff7b72.Td2a8fflistboxTb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff1Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffmake_conversation_widgetTb4b4b4(Tff7b72NoneTb4b4b4)Tb4b4b4)
Tb4b4b4]Tb4b4b4,
Te6edf3dividecharsTff7b72=T79c0ff0Tb4b4b4, Te6edf3focus_columnTff7b72=T79c0ff0Tb4b4b4, Te6edf3box_columnsTff7b72=Tb4b4b4[T79c0ff0Tb4b4b4]
Tb4b4b4)

Tff7b72selfTff7b72.Td2a8fflist_shortcuts Tff7b72= Te6edf3ConversationListDisplayShortcutsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffeditor_shortcuts Tff7b72= Te6edf3ConversationDisplayShortcutsTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffshortcuts_display Tff7b72= Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72selfTff7b72.Td2a8ffwidget Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widget

Tff7b72selfTff7b72.Td2a8ff_pending_actions Tff7b72= Te6edf3collectionsTff7b72.Td2a8ffdequeTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_wake_fd Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_wake_fd Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffwatch_pipeTb4b4b4(Tff7b72selfTff7b72.Td2a8ff_process_pendingTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffcreated_callback Tff7b72= Tff7b72lambdaTb4b4b4: Tff7b72selfTff7b72.Td2a8ff_wakeTb4b4b4(Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4)

Tff7b72def Td2a8ff_process_pendingTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Tff7b72while Tff7b72TrueTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3action Tff7b72= Tff7b72selfTff7b72.Td2a8ff_pending_actionsTff7b72.Td2a8ffpopleftTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149IndexErrorTb4b4b4:
Tff7b72break
Tff7b72tryTb4b4b4:
Te6edf3actionTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffConversations UI action failed: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72return Tff7b72True

Tff7b72def Td2a8ff_wakeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3actionTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_pending_actionsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3actionTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ff_wake_fd Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3osTff7b72.Td2a8ffwriteTb4b4b4(Tff7b72selfTff7b72.Td2a8ff_wake_fdTb4b4b4, Ta5d6ffbTa5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)
Tff7b72return
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72tryTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffset_alarm_inTb4b4b4(T79c0ff0.0Tb4b4b4, Tff7b72lambda Te6edf3lTb4b4b4, Te6edf3dTb4b4b4: Tff7b72selfTff7b72.Td2a8ff_process_pendingTb4b4b4(Tff7b72NoneTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Tff7b72def Td2a8fffocus_change_eventTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffdialog_openTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8fftoggle_list_sortTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fflist_sort_mode Tff7b72== Te6edf3ConversationsDisplayTff7b72.Td2a8ffSORT_RECENTTb4b4b4:
Tff7b72selfTff7b72.Td2a8fflist_sort_mode Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffSORT_NAME
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fflist_sort_mode Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffSORT_RECENT
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffupdate_listboxTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3conversations Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationsTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8fflist_sort_mode Tff7b72== Te6edf3ConversationsDisplayTff7b72.Td2a8ffSORT_NAMETb4b4b4:
Te6edf3conversationsTff7b72.Td2a8ffsortTb4b4b4(Te6edf3keyTff7b72=Tff7b72lambda Te6edf3eTb4b4b4: Tb4b4b4(Te6edf3eTb4b4b4[T79c0ff3Tb4b4b4]Tff7b72.Td2a8fflowerTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3eTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4)

Te6edf3conversation_list_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3conversation Tff7b72in Te6edf3conversationsTb4b4b4:
Te6edf3conversation_list_widgetsTff7b72.Td2a8ffappendTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconversation_list_widgetTb4b4b4(Te6edf3conversationTb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8fflist_widgets Tff7b72= Te6edf3conversation_list_widgets
Tff7b72selfTff7b72.Td2a8ffilb Tff7b72= Te6edf3IndicativeListBoxTb4b4b4(
Tff7b72selfTff7b72.Td2a8fflist_widgetsTb4b4b4,
Te6edf3on_selection_changeTff7b72=Tff7b72selfTff7b72.Td2a8ffconversation_list_selectionTb4b4b4,
Te6edf3initialization_is_selection_changeTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3highlight_offFocusTff7b72=Ta5d6ff"Ta5d6fflist_off_focusTa5d6ff"
Tb4b4b4)

Tff7b72selfTff7b72.Td2a8fflistbox Tff7b72= Te6edf3ConversationsAreaTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFillerTb4b4b4(Tff7b72selfTff7b72.Td2a8ffilbTb4b4b4, Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffConversationsTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fflistboxTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self

Tff7b72def Td2a8ffdelete_selected_conversationTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3item Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3item Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72return
Te6edf3source_hash Tff7b72= Te6edf3itemTff7b72.Td2a8ffsource_hash

Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffdelete_conversationTb4b4b4(Te6edf3source_hashTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffdelete_conversationTb4b4b4(Te6edf3source_hashTb4b4b4, Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Ta5d6ffDelete conversation withTffea00\nTa5d6ff"Tff7b72+Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffsimplest_display_strTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffNoTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff?Ta5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

T8b949e# options = self.columns_widget.options(urwid.WEIGHT, ConversationsDisplay.list_width)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72def Td2a8ffedit_selected_in_directoryTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3item Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3item Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72return
Te6edf3source_hash_text Tff7b72= Te6edf3itemTff7b72.Td2a8ffsource_hash
Te6edf3display_name Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffdisplay_name
Tff7b72if Te6edf3display_name Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3display_name Tff7b72= Ta5d6ff"Ta5d6ff"

Te6edf3e_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3source_hash_textTb4b4b4)
Te6edf3t_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tff7b72+Te6edf3source_hash_textTb4b4b4)
Te6edf3e_name Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffName : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3display_nameTb4b4b4)

Te6edf3selected_id_widget Tff7b72= Te6edf3t_id

Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72True
Te6edf3trusted_selected Tff7b72= Tff7b72False

Te6edf3direct_selected Tff7b72= Tff7b72True
Te6edf3propagated_selected Tff7b72= Tff7b72False

Tff7b72tryTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fffindTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)Tb4b4b4:
Te6edf3trust_level Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fftrust_levelTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72True
Te6edf3unknown_selected Tff7b72= Tff7b72False
Te6edf3trusted_selected Tff7b72= Tff7b72False
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWNTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72True
Te6edf3trusted_selected Tff7b72= Tff7b72False
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3untrusted_selected Tff7b72= Tff7b72False
Te6edf3unknown_selected Tff7b72= Tff7b72False
Te6edf3trusted_selected Tff7b72= Tff7b72True

Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffpreferred_deliveryTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4) Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffPROPAGATEDTb4b4b4:
Te6edf3direct_selected Tff7b72= Tff7b72False
Te6edf3propagated_selected Tff7b72= Tff7b72True
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72pass

Te6edf3trust_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_untrusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUntrustedTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3untrusted_selectedTb4b4b4)
Te6edf3r_unknown Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUnknownTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3unknown_selectedTb4b4b4)
Te6edf3r_trusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffTrustedTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3trusted_selectedTb4b4b4)

Te6edf3method_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_direct Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3method_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffDeliver directlyTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3direct_selectedTb4b4b4)
Te6edf3r_propagated Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3method_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUse propagation nodesTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Te6edf3propagated_selectedTb4b4b4)

Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3display_name Tff7b72= Te6edf3e_nameTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3source_hash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3e_idTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTED
Tff7b72if Te6edf3r_unknownTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWN
Tff7b72elif Te6edf3r_trustedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTED

Te6edf3delivery Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffDIRECT
Tff7b72if Te6edf3r_propagatedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3delivery Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffPROPAGATED

Te6edf3entry Tff7b72= Te6edf3DirectoryEntryTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3display_nameTb4b4b4, Te6edf3trust_levelTb4b4b4, Te6edf3preferred_deliveryTff7b72=Te6edf3deliveryTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffrememberTb4b4b4(Te6edf3entryTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffnetwork_displayTff7b72.Td2a8ffdirectory_change_callbackTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not save directory entry. The contained exception was: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_VERBOSETb4b4b4)
Tff7b72if Tff7b72not Te6edf3dialog_pileTff7b72.Td2a8fferror_displayTb4b4b4:
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72True
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCould not save entry. Check your input.Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3optionsTb4b4b4,Tb4b4b4)
Tb4b4b4)

Te6edf3source_is_known Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffis_knownTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3source_is_knownTb4b4b4:
Te6edf3known_section Tff7b72= Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72def Td2a8ffquery_actionTb4b4b4(Te6edf3senderTb4b4b4, Te6edf3user_dataTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclose_conversation_by_hashTb4b4b4(Te6edf3user_dataTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffquery_for_peerTb4b4b4(Te6edf3user_dataTb4b4b4)
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontents Tff7b72= Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffQuery sentTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)
Tb4b4b4]
Te6edf3query_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffQuery network for keysTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3query_actionTb4b4b4, Te6edf3user_dataTff7b72=Te6edf3source_hash_textTb4b4b4)
Te6edf3known_section Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Ta5d6ffThe identity of this peer is not known, and you cannot currently send messages to it. Ta5d6ff"
Ta5d6ff"Ta5d6ffYou can query the network to obtain the identity.Tffea00\nTa5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3query_buttonTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)

Te6edf3dialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3selected_id_widgetTb4b4b4,
Te6edf3e_nameTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_untrustedTb4b4b4,
Te6edf3r_unknownTb4b4b4,
Te6edf3r_trustedTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_directTb4b4b4,
Te6edf3r_propagatedTb4b4b4,
Te6edf3known_sectionTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSaveTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffBackTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3dialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffPeer InfoTa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

T8b949e# options = self.columns_widget.options(urwid.WEIGHT, ConversationsDisplay.list_width)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72def Td2a8ffnew_conversationTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3source_hash Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3display_name Tff7b72= Ta5d6ff"Ta5d6ff"

Te6edf3e_id Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffAddr : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3source_hashTb4b4b4)
Te6edf3e_name Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffName : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3display_nameTb4b4b4)

Te6edf3trust_button_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_untrusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUntrustedTa5d6ff"Tb4b4b4)
Te6edf3r_unknown Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffUnknownTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3r_trusted Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3trust_button_groupTb4b4b4, Ta5d6ff"Ta5d6ffTrustedTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3existing_conversations Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTff7b72.Td2a8ffconversation_listTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Te6edf3display_name Tff7b72= Te6edf3e_nameTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3source_hash_text Tff7b72= Te6edf3e_idTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Te6edf3source_hash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3source_hash_textTb4b4b4)
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTED
Tff7b72if Te6edf3r_unknownTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWN
Tff7b72elif Te6edf3r_trustedTff7b72.Td2a8ffstate Tff7b72== Tff7b72TrueTb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTED

Tff7b72if Tff7b72not Te6edf3source_hash Tff7b72in Tb4b4b4[Te6edf3cTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72for Te6edf3c Tff7b72in Te6edf3existing_conversationsTb4b4b4]Tb4b4b4:
Te6edf3entry Tff7b72= Te6edf3DirectoryEntryTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3display_nameTb4b4b4, Te6edf3trust_levelTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffrememberTb4b4b4(Te6edf3entryTb4b4b4)

Te6edf3new_conversation Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTb4b4b4(Te6edf3source_hash_textTb4b4b4, Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3initiatorTff7b72=Tff7b72TrueTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3source_hash_textTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not start conversation. The contained exception was: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_VERBOSETb4b4b4)
Tff7b72if Tff7b72not Te6edf3dialog_pileTff7b72.Td2a8fferror_displayTb4b4b4:
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72True
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCould not start conversation. Check your input.Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3optionsTb4b4b4,
Tb4b4b4)Tb4b4b4)

Te6edf3dialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3e_idTb4b4b4,
Te6edf3e_nameTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3r_untrustedTb4b4b4,
Te6edf3r_unknownTb4b4b4,
Te6edf3r_trustedTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCreateTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffBackTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3dialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffNew ConversationTa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

T8b949e# options = self.columns_widget.options(urwid.WEIGHT, ConversationsDisplay.list_width)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72def Td2a8ffingest_lxm_uriTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Te6edf3lxm_uri Tff7b72= Ta5d6ff"Ta5d6ff"
Te6edf3e_uri Tff7b72= Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ffURI : Ta5d6ff"Tb4b4b4,Te6edf3edit_textTff7b72=Te6edf3lxm_uriTb4b4b4)

Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False

Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3local_delivery_signal Tff7b72= Ta5d6ff"Ta5d6fflocal_delivery_occurredTa5d6ff"
Te6edf3duplicate_signal Tff7b72= Ta5d6ff"Ta5d6ffduplicate_lxmTa5d6ff"
Te6edf3lxm_uri Tff7b72= Te6edf3e_uriTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)

Te6edf3ingest_result Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffingest_lxm_uriTb4b4b4(
Te6edf3lxm_uriTb4b4b4,
Te6edf3signal_local_deliveryTff7b72=Te6edf3local_delivery_signalTb4b4b4,
Te6edf3signal_duplicateTff7b72=Te6edf3duplicate_signal
Tb4b4b4)

Tff7b72if Te6edf3ingest_result Tff7b72== Tff7b72FalseTb4b4b4:
Tff7b72raise Tf85149ValueErrorTb4b4b4(Ta5d6ff"Ta5d6ffThe URI contained no decodable messagesTa5d6ff"Tb4b4b4)
Tff7b72elif Te6edf3ingest_result Tff7b72== Te6edf3local_delivery_signalTb4b4b4:
Te6edf3rdialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffMessage was decoded, decrypted successfully, and added to your conversation list.Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3rdialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3rdialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3rdialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffIngest message URITa5d6ff"Tb4b4b4)
Te6edf3rdialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3roverlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3rdialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3roverlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72elif Te6edf3ingest_result Tff7b72== Te6edf3duplicate_signalTb4b4b4:
Te6edf3rdialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffThe decoded message has already been processed by the LXMF Router, and will not be ingested again.Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3rdialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3rdialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3rdialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffIngest message URITa5d6ff"Tb4b4b4)
Te6edf3rdialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3roverlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3rdialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3roverlayTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffenable_nodeTb4b4b4:
Te6edf3propagation_text Tff7b72= Ta5d6ff"Ta5d6ffThe decoded message was not addressed to this LXMF address, but has been added to the propagation node queues, and will be distributed on the propagation network.Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3propagation_text Tff7b72= Ta5d6ff"Ta5d6ffThe decoded message was not addressed to this LXMF address, and has been discarded.Ta5d6ff"

Te6edf3rdialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3propagation_textTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3rdialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3rdialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3rdialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffIngest message URITa5d6ff"Tb4b4b4)
Te6edf3rdialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3roverlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3rdialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3roverlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffCould not ingest LXM URI. The contained exception was: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_VERBOSETb4b4b4)
Tff7b72if Tff7b72not Te6edf3dialog_pileTff7b72.Td2a8fferror_displayTb4b4b4:
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72True
Te6edf3options Tff7b72= Te6edf3dialog_pileTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3height_typeTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8ffcontentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCould ingest LXM from URI data. Check your input.Ta5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)Tb4b4b4)

Te6edf3dialog_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3e_uriTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffIngestTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffBackTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Te6edf3dialog_pileTff7b72.Td2a8fferror_display Tff7b72= Tff7b72False

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3dialog_pileTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffIngest message URITa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72def Td2a8ffdelete_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3conversation Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffclose_conversationTb4b4b4(Te6edf3conversationTb4b4b4)

Tff7b72def Td2a8fftoggle_fullscreenTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_width Tff7b72!= T79c0ff0Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsaved_list_width Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_width
Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_width Tff7b72= T79c0ff0
Tff7b72elseTb4b4b4:
Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_width Tff7b72= Tff7b72selfTff7b72.Td2a8ffsaved_list_width

Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsync_conversationsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72True
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72>Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffcancel_lxmf_syncTb4b4b4(Tb4b4b4)

Te6edf3max_messages_group Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3r_mall Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3max_messages_groupTb4b4b4, Ta5d6ff"Ta5d6ffDownload allTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3r_mlim Tff7b72= Te6edf3urwidTff7b72.Td2a8ffRadioButtonTb4b4b4(Te6edf3max_messages_groupTb4b4b4, Ta5d6ff"Ta5d6ffLimit toTa5d6ff"Tb4b4b4, Te6edf3stateTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3ie_lim Tff7b72= Te6edf3urwidTff7b72.Td2a8ffIntEditTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, T79c0ff5Tb4b4b4)
Te6edf3rbs Tff7b72= Te6edf3urwidTff7b72.Td2a8ffGridFlowTb4b4b4(Tb4b4b4[Te6edf3r_mlimTb4b4b4, Te6edf3ie_limTb4b4b4]Tb4b4b4, T79c0ff12Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffLEFTTb4b4b4)

Tff7b72def Td2a8ffsync_nowTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3limit Tff7b72= Tff7b72None
Tff7b72if Te6edf3r_mlimTff7b72.Td2a8ffget_stateTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3limit Tff7b72= Te6edf3ie_limTff7b72.Td2a8ffvalueTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffrequest_lxmf_syncTb4b4b4(Te6edf3limitTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffcancel_syncTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffcancel_lxmf_syncTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4(Tb4b4b4)

Te6edf3cancel_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCloseTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)
Te6edf3sync_progress Tff7b72= Te6edf3SyncProgressBarTb4b4b4(Ta5d6ff"Ta5d6ffprogress_emptyTa5d6ff" Tb4b4b4, Ta5d6ff"Ta5d6ffprogress_fullTa5d6ff"Tb4b4b4, Te6edf3currentTff7b72=Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3doneTff7b72=T79c0ff1.0Tb4b4b4, Te6edf3sattTff7b72=Tff7b72NoneTb4b4b4)

Te6edf3real_sync_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSync NowTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3sync_nowTb4b4b4)
Te6edf3hidden_sync_button Tff7b72= Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCancel SyncTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3cancel_syncTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffIdleTa5d6ff" Tff7b72or Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72>Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Te6edf3sync_button Tff7b72= Te6edf3real_sync_button
Tff7b72elseTb4b4b4:
Te6edf3sync_button Tff7b72= Te6edf3hidden_sync_button

Te6edf3button_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3sync_buttonTb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3cancel_buttonTb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Te6edf3real_sync_buttonTff7b72.Td2a8ffbc Tff7b72= Te6edf3button_columns

Te6edf3pn_ident Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_default_propagation_nodeTb4b4b4(Tb4b4b4) Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3pn_hash Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_default_propagation_nodeTb4b4b4(Tb4b4b4)
Te6edf3pn_ident Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecallTb4b4b4(Te6edf3pn_hashTb4b4b4)

Tff7b72if Te6edf3pn_ident Tff7b72== Tff7b72NoneTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffPropagation node identity is unknown, requesting from network...Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffrequest_pathTb4b4b4(Te6edf3pn_hashTb4b4b4)

Tff7b72if Te6edf3pn_ident Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3node_hash Tff7b72= Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffhash_from_name_and_identityTb4b4b4(Ta5d6ff"Ta5d6ffnomadnetwork.nodeTa5d6ff"Tb4b4b4, Te6edf3pn_identTb4b4b4)
Te6edf3pn_entry Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8fffindTb4b4b4(Te6edf3node_hashTb4b4b4)
Te6edf3pn_display_str Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"
Tff7b72if Te6edf3pn_entry Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3pn_display_str Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pn_entryTff7b72.Td2a8ffdisplay_nameTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3pn_display_str Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3pn_hashTb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffnodeTa5d6ff"Tb4b4b4]Tff7b72+Te6edf3pn_display_strTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3sync_progressTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Te6edf3r_mallTb4b4b4,
Te6edf3rbsTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3button_columns
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffMessage SyncTa5d6ff"
Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3button_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff" Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3cancel_buttonTb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffNo trusted nodes found, cannot sync!Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Ta5d6ffTo synchronise messages from the network, Ta5d6ff"
Ta5d6ff"Ta5d6ffone or more nodes must be marked as trusted in the Known Nodes list, Ta5d6ff"
Ta5d6ff"Ta5d6ffor a node must manually be selected as the default propagation node. Ta5d6ff"
Ta5d6ff"Ta5d6ffNomad Network will then automatically sync from the nearest trusted node, Ta5d6ff"
Ta5d6ff"Ta5d6ffor the manually selected one.Ta5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffLEFTTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3button_columns
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffMessage SyncTa5d6ff"
Tb4b4b4)

Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3dialogTff7b72.Td2a8ffsync_progress Tff7b72= Te6edf3sync_progress
Te6edf3dialogTff7b72.Td2a8ffcancel_button Tff7b72= Te6edf3cancel_button
Te6edf3dialogTff7b72.Td2a8ffreal_sync_button Tff7b72= Te6edf3real_sync_button
Te6edf3dialogTff7b72.Td2a8ffhidden_sync_button Tff7b72= Te6edf3hidden_sync_button
Te6edf3dialogTff7b72.Td2a8ffbc Tff7b72= Te6edf3button_columns

Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72= Te6edf3dialog
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

T8b949e# options = self.columns_widget.options(urwid.WEIGHT, ConversationsDisplay.list_width)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72def Td2a8ffupdate_sync_dialogTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3loop Tff7b72= Tff7b72NoneTb4b4b4, Te6edf3sender Tff7b72= Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72and Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffsync_progressTff7b72.Td2a8ffset_completionTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_progressTb4b4b4(Tb4b4b4)Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffIdleTa5d6ff" Tff7b72or Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpropagation_transfer_state Tff7b72>Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTff7b72.Td2a8ffPR_COMPLETETb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffreal_sync_buttonTb4b4b4, Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffhidden_sync_buttonTb4b4b4, Tff7b72selfTff7b72.Td2a8ffsync_dialogTff7b72.Td2a8ffbcTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffset_alarm_inTb4b4b4(T79c0ff0.2Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffupdate_sync_dialogTb4b4b4)


Tff7b72def Td2a8ffconversation_list_selectionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3arg1Tb4b4b4, Te6edf3arg2Tb4b4b4)Tb4b4b4:
Tff7b72pass

Tff7b72def Td2a8ffupdate_conversation_listTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3selected_hash Tff7b72= Tff7b72None
Te6edf3selected_item Tff7b72= Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffget_selected_itemTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3selected_item Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72if Tffa657hasattrTb4b4b4(Te6edf3selected_itemTb4b4b4, Ta5d6ff"Ta5d6ffsource_hashTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3selected_hash Tff7b72= Te6edf3selected_itemTff7b72.Td2a8ffsource_hash

Tff7b72selfTff7b72.Td2a8ffupdate_listboxTb4b4b4(Tb4b4b4)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffGIVENTb4b4b4, Te6edf3ConversationsDisplayTff7b72.Td2a8ffgiven_list_widthTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72and Tff7b72selfTff7b72.Td2a8ffsync_dialog Tff7b72!= Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8fflistboxTb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8fflistbox
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffsync_dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=Te6edf3urwidTff7b72.Td2a8ffRELATIVE_100Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcolumns_widgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Te6edf3optionsTb4b4b4)

Tff7b72if Te6edf3selected_hash Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72for Te6edf3idxTb4b4b4, Te6edf3widget Tff7b72in Tffa657enumerateTb4b4b4(Tff7b72selfTff7b72.Td2a8fflist_widgetsTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3widgetTff7b72.Td2a8ffsource_hash Tff7b72== Te6edf3selected_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffselect_itemTb4b4b4(Te6edf3idxTb4b4b4)
Tff7b72break
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffdraw_screenTb4b4b4(Tb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffactive_display Tff7b72== Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffconversations_displayTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72if Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationpath Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72+ Ta5d6ff"Ta5d6ff/unreadTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3osTff7b72.Td2a8ffunlinkTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversationpath Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72+ Ta5d6ff"Ta5d6ff/unreadTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72raise Te6edf3e




Tff7b72def Td2a8ffdisplay_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72= Te6edf3source_hash
T8b949e# options = self.widget.options(urwid.WEIGHT, 1-ConversationsDisplay.list_width)
Te6edf3options Tff7b72= Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffoptionsTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffcontentsTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffmake_conversation_widgetTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4, Te6edf3optionsTb4b4b4)
Tff7b72if Te6edf3source_hash Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8fffocus_position Tff7b72= T79c0ff0
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconversation_is_unreadTb4b4b4(Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmark_conversation_readTb4b4b4(Te6edf3source_hashTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_conversation_listTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8fffocus_position Tff7b72= T79c0ff1
Te6edf3conversation_position Tff7b72= Tff7b72None
Te6edf3index Tff7b72= T79c0ff0
Tff7b72for Te6edf3widget Tff7b72in Tff7b72selfTff7b72.Td2a8fflist_widgetsTb4b4b4:
Tff7b72if Te6edf3widgetTff7b72.Td2a8ffsource_hash Tff7b72== Te6edf3source_hashTb4b4b4:
Te6edf3conversation_position Tff7b72= Te6edf3index
Te6edf3index Tff7b72+Tff7b72= T79c0ff1

Tff7b72if Te6edf3conversation_position Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffilbTff7b72.Td2a8ffselect_itemTb4b4b4(Te6edf3conversation_positionTb4b4b4)

Tff7b72def Td2a8ffmake_conversation_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3conversation_widget Tff7b72= Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72if Te6edf3source_hash Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3conversation_widgetTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Te6edf3replaceTff7b72=Tff7b72TrueTb4b4b4)

Te6edf3conversation_widgetTff7b72.Td2a8ffcheck_editor_allowedTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3conversation_widget
Tff7b72elseTb4b4b4:
Te6edf3widget Tff7b72= Te6edf3ConversationWidgetTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3delegateTff7b72=Tff7b72selfTb4b4b4)
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4] Tff7b72= Te6edf3widget

Te6edf3widgetTff7b72.Td2a8ffcheck_editor_allowedTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3widget

Tff7b72def Td2a8ffclose_conversation_by_hashTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversation_hashTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3conversation_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTff7b72.Td2a8ffpopTb4b4b4(Te6edf3conversation_hashTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72== Te6edf3conversation_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ffclose_conversationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3conversationTff7b72.Td2a8ffsource_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTff7b72.Td2a8ffpopTb4b4b4(Te6edf3conversationTff7b72.Td2a8ffsource_hashTb4b4b4)

Tff7b72if Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversation Tff7b72== Te6edf3conversationTff7b72.Td2a8ffsource_hashTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4(Te6edf3senderTff7b72=Tff7b72NoneTb4b4b4, Te6edf3source_hashTff7b72=Tff7b72NoneTb4b4b4)


Tff7b72def Td2a8ffconversation_list_widgetTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Te6edf3trust_level Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff2Tb4b4b4]
Te6edf3display_name Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3source_hash Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff0Tb4b4b4]
Te6edf3unread Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff4Tb4b4b4]
Te6edf3last_activity Tff7b72= Te6edf3conversationTb4b4b4[T79c0ff5Tb4b4b4]

Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs

Tff7b72if Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_untrustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_untrustedTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNKNOWNTb4b4b4:
Te6edf3symbol Tff7b72= Ta5d6ff"Ta5d6ff?Ta5d6ff"
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_unknownTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_trustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_trustedTa5d6ff"
Tff7b72elif Te6edf3trust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffWARNINGTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_warningTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3symbol Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_untrustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_untrustedTa5d6ff"

Te6edf3display_text Tff7b72= Te6edf3symbol

Tff7b72if Te6edf3display_name Tff7b72!= Tff7b72None Tff7b72and Te6edf3display_name Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3display_name

Tff7b72if Te6edf3trust_level Tff7b72!= Te6edf3DirectoryEntryTff7b72.Td2a8ffTRUSTEDTb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff <Ta5d6ff"Tff7b72+Te6edf3source_hashTff7b72+Ta5d6ff"Ta5d6ff>Ta5d6ff"
Tff7b72if Te6edf3trust_level Tff7b72!= Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Tff7b72if Te6edf3unreadTb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72!= Tff7b72selfTff7b72.Td2a8ffcurrently_displayed_conversationTb4b4b4:
Tff7b72if Te6edf3unread Tff7b72> T79c0ff1Tb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffunreadTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff (Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3unreadTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff)Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffunreadTa5d6ff"Tb4b4b4]


Tff7b72if Te6edf3last_activity Tff7b72> T79c0ff0Tb4b4b4:
Te6edf3display_text Tff7b72+Tff7b72= Ta5d6ff"Tffea00\nTa5d6ff Ta5d6ff"Tff7b72+Te6edf3relative_timeTb4b4b4(Te6edf3last_activityTb4b4b4)

Te6edf3widget Tff7b72= Te6edf3ListEntryTb4b4b4(Te6edf3display_textTb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffconnect_signalTb4b4b4(Te6edf3widgetTb4b4b4, Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ffdisplay_conversationTb4b4b4, Te6edf3conversationTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3widgetTb4b4b4, Te6edf3styleTb4b4b4, Te6edf3focus_styleTb4b4b4)
Te6edf3display_widgetTff7b72.Td2a8ffsource_hash Tff7b72= Te6edf3source_hash
Te6edf3display_widgetTff7b72.Td2a8ffdisplay_name Tff7b72= Te6edf3display_name

Tff7b72return Te6edf3display_widget


Tff7b72def Td2a8ffshortcutsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3focus_path Tff7b72= Tff7b72selfTff7b72.Td2a8ffwidgetTff7b72.Td2a8ffget_focus_pathTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3focus_pathTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== T79c0ff0Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8fflist_shortcuts
Tff7b72elif Te6edf3focus_pathTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72== T79c0ff1Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffeditor_shortcuts
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8fflist_shortcuts

Tff7b72class T56d364ListEntryTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4)Tb4b4b4:
Te6edf3_selectable Tff7b72= Tff7b72True

Te6edf3signals Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4]

Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
T8b949e"""
Send 'click' signal on 'activate' command.
"""
Tff7b72if Tff7b72selfTff7b72.Td2a8ff_command_mapTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72!= Te6edf3urwidTff7b72.Td2a8ffACTIVATETb4b4b4:
Tff7b72return Te6edf3key

Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff'Ta5d6ffclickTa5d6ff'Tb4b4b4)

Tff7b72def Td2a8ffmouse_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3buttonTb4b4b4, Te6edf3xTb4b4b4, Te6edf3yTb4b4b4, Te6edf3focusTb4b4b4)Tb4b4b4:
T8b949e"""
Send 'click' signal on button 1 press.
"""
Tff7b72if Te6edf3button Tff7b72!= T79c0ff1 Tff7b72or Tff7b72not Te6edf3urwidTff7b72.Td2a8ffutilTff7b72.Td2a8ffis_mouse_pressTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72False

Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff'Ta5d6ffclickTa5d6ff'Tb4b4b4)
Tff7b72return Tff7b72True

Tff7b72class T56d364MessageEditTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffEditTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl dTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffsend_messageTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl pTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpaper_messageTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl aTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffattach_fileTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl sTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffsave_focused_attachmentsTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl kTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff"Tb4b4b4:
Te6edf3y Tff7b72= Tff7b72selfTff7b72.Td2a8ffget_cursor_coordsTb4b4b4(Te6edf3sizeTb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4]
Tff7b72if Te6edf3y Tff7b72== T79c0ff0Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffull_editor_active Tff7b72and Tff7b72selfTff7b72.Td2a8ffname Tff7b72== Ta5d6ff"Ta5d6fftitle_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"
Tff7b72elif Tff7b72not Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffull_editor_active Tff7b72and Tff7b72selfTff7b72.Td2a8ffname Tff7b72== Ta5d6ff"Ta5d6ffcontent_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3MessageEditTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)


Tff7b72class T56d364ConversationFrameTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFrameTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fffocus_position Tff7b72== Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4:
Tff7b72if Tffa657getattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTb4b4b4, Ta5d6ff"Ta5d6ffdialog_activeTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4) Tff7b72or Tffa657getattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTb4b4b4, Ta5d6ff"Ta5d6ffdialog_openTa5d6ff"Tb4b4b4, Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationFrameTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffmessagelistTff7b72.Td2a8fftop_is_visibleTb4b4b4:
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffheaderTa5d6ff"
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffdownTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffmessagelistTff7b72.Td2a8ffbottom_is_visibleTb4b4b4:
Tff7b72selfTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6fffooterTa5d6ff"
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationFrameTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl kTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationFrameTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)

Tff7b72class T56d364ConversationWidgetTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3source_hashTb4b4b4, Te6edf3delegateTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdelegate Tff7b72= Te6edf3delegate
Tff7b72if Te6edf3source_hash Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframe Tff7b72= Tff7b72None
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffFillerTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ff No conversation selectedTa5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6fftopTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3display_widgetTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3source_hash Tff7b72in Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4:
Tff7b72return Te6edf3ConversationsDisplayTff7b72.Td2a8ffcached_conversation_widgetsTb4b4b4[Te6edf3source_hashTb4b4b4]
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsource_hash Tff7b72= Te6edf3source_hash
Tff7b72selfTff7b72.Td2a8ffconversation Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffConversationTb4b4b4(Te6edf3source_hashTb4b4b4, Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessage_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffsort_by_timestamp Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffpending_attachments Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffregister_changed_callbackTb4b4b4(Tff7b72selfTff7b72.Td2a8ff_on_conversation_changed_from_callbackTb4b4b4)

T8b949e#title_editor = MessageEdit(caption="\u270E", edit_text="", multiline=False)
Te6edf3title_editor Tff7b72= Te6edf3MessageEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3edit_textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3multilineTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3title_editorTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3title_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6fftitle_editorTa5d6ff"

T8b949e#msg_editor = MessageEdit(caption="\u270E", edit_text="", multiline=True)
Te6edf3msg_editor Tff7b72= Te6edf3MessageEditTb4b4b4(Te6edf3captionTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3edit_textTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3multilineTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3msg_editorTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3msg_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffcontent_editorTa5d6ff"

Tff7b72selfTff7b72.Td2a8ffpeer_info_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_update_peer_infoTb4b4b4(Tb4b4b4)

Te6edf3header_widgets Tff7b72= Tb4b4b4[Tff7b72selfTff7b72.Td2a8ffpeer_info_widgetTb4b4b4]
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8fftrust_level Tff7b72== Te6edf3DirectoryEntryTff7b72.Td2a8ffUNTRUSTEDTb4b4b4:
Te6edf3header_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPaddingTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Warning: Conversation with untrusted peer Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffmsg_warning_untrustedTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4)
Te6edf3header Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Te6edf3header_widgetsTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffminimal_editor Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3msg_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffminimal_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffminimal_editorTa5d6ff"

Te6edf3title_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(T79c0ff8Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffTitleTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3title_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)

Te6edf3content_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(T79c0ff8Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffContentTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3msg_editorTb4b4b4, Ta5d6ff"Ta5d6ffmsg_editorTa5d6ff"Tb4b4b4)
Tb4b4b4]Tb4b4b4)

Tff7b72selfTff7b72.Td2a8fffull_editor Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3title_columnsTb4b4b4,
Te6edf3content_columns
Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffull_editorTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6fffull_editorTa5d6ff"

Tff7b72selfTff7b72.Td2a8ffcontent_editor Tff7b72= Te6edf3msg_editor
Tff7b72selfTff7b72.Td2a8fftitle_editor Tff7b72= Te6edf3title_editor
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72False

Tff7b72selfTff7b72.Td2a8ffframe Tff7b72= Te6edf3ConversationFrameTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffmessagelistTb4b4b4,
Te6edf3headerTff7b72=Te6edf3headerTb4b4b4,
Te6edf3footerTff7b72=Tff7b72selfTff7b72.Td2a8ffminimal_editorTb4b4b4,
Te6edf3focus_partTff7b72=Ta5d6ff"Ta5d6fffooterTa5d6ff"
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self

Tff7b72selfTff7b72.Td2a8ffdisplay_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffframe
Tb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdisplay_widgetTb4b4b4)

Tff7b72def Td2a8ff_update_peer_infoTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffsanTb4b4b4(Te6edf3nameTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftextuiTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffsanitize_namesTa5d6ff"Tb4b4b4]Tb4b4b4: Tff7b72return Te6edf3sanitize_nameTb4b4b4(Te6edf3nameTb4b4b4)
Tff7b72elseTb4b4b4: Tff7b72return Te6edf3strip_modifiersTb4b4b4(Te6edf3nameTb4b4b4)

Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Te6edf3source_hash_bytes Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsource_hashTb4b4b4)

Te6edf3display_name Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffdisplay_nameTb4b4b4(Te6edf3source_hash_bytesTb4b4b4)
Te6edf3app_data Tff7b72= Tff7b72None
Tff7b72if Te6edf3display_name Tff7b72is Tff7b72None Tff7b72or Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_stamp_costTb4b4b4(Te6edf3source_hash_bytesTb4b4b4) Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3app_data Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecall_app_dataTb4b4b4(Te6edf3source_hash_bytesTb4b4b4)

Tff7b72if Te6edf3display_name Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72if Te6edf3app_dataTb4b4b4:
Te6edf3display_name Tff7b72= Te6edf3sanTb4b4b4(Te6edf3LXMFTff7b72.Td2a8ffdisplay_name_from_app_dataTb4b4b4(Te6edf3app_dataTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3display_name Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3display_name Tff7b72= Te6edf3RNSTff7b72.Td2a8ffprettyhexrepTb4b4b4(Te6edf3source_hash_bytesTb4b4b4)

Te6edf3stamp_cost Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffget_outbound_stamp_costTb4b4b4(Te6edf3source_hash_bytesTb4b4b4)
Tff7b72if Te6edf3stamp_cost Tff7b72is Tff7b72None Tff7b72and Te6edf3app_dataTb4b4b4:
Te6edf3stamp_cost Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffstamp_cost_from_app_dataTb4b4b4(Te6edf3app_dataTb4b4b4)

Te6edf3hops Tff7b72= Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffhops_toTb4b4b4(Te6edf3source_hash_bytesTb4b4b4)
Tff7b72if Te6edf3hops Tff7b72>Tff7b72= Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffPATHFINDER_MTb4b4b4:
Te6edf3hops_str Tff7b72= Ta5d6ff"Ta5d6ffunknownTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3hops_str Tff7b72= Tffa657strTb4b4b4(Te6edf3hopsTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff hopTa5d6ff" Tff7b72+ Tb4b4b4(Ta5d6ff"Ta5d6ffsTa5d6ff" Tff7b72if Te6edf3hops Tff7b72!= T79c0ff1 Tff7b72else Ta5d6ff"Ta5d6ff"Tb4b4b4)

Te6edf3right_parts Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72if Te6edf3stamp_cost Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3right_partsTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ffStamp: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3stamp_costTb4b4b4)Tb4b4b4)
Te6edf3right_partsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffspeedTa5d6ff"Tb4b4b4]Tff7b72+Te6edf3hops_strTb4b4b4)

Te6edf3left Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3display_name
Te6edf3right Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3right_partsTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffpeer_info_widgetTff7b72.Td2a8fforiginal_widgetTff7b72.Td2a8ffset_textTb4b4b4(Te6edf3leftTff7b72+Ta5d6ff"Ta5d6ff | Ta5d6ff"Tff7b72+Te6edf3rightTb4b4b4)

Tff7b72def Td2a8ffclear_history_dialogTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ffconfirmedTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffclear_historyTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)


Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffClear conversation historyTffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffYesTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3confirmedTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffNoTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff?Ta5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(
Te6edf3dialogTb4b4b4,
Te6edf3bottomTb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Te6edf3widthTff7b72=T79c0ff34Tb4b4b4,
Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4,
Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4,
Te6edf3leftTff7b72=T79c0ff2Tb4b4b4,
Te6edf3rightTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"
Tff7b72def Td2a8ff_build_footerTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Tff7b72selfTff7b72.Td2a8fffull_editor_activeTb4b4b4:
Te6edf3editor Tff7b72= Tff7b72selfTff7b72.Td2a8fffull_editor
Tff7b72elseTb4b4b4:
Te6edf3editor Tff7b72= Tff7b72selfTff7b72.Td2a8ffminimal_editor

Tff7b72if Tff7b72selfTff7b72.Td2a8ffpending_attachmentsTb4b4b4:
Te6edf3attachment_texts Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3path Tff7b72in Tff7b72selfTff7b72.Td2a8ffpending_attachmentsTb4b4b4:
Te6edf3attachment_textsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4)
Te6edf3indicator Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Tff7b72selfTff7b72.Td2a8ffpending_attachmentsTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff file(s): Ta5d6ff"Tff7b72+Ta5d6ff"Ta5d6ff, Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3attachment_textsTb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72return Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[Te6edf3indicatorTb4b4b4, Te6edf3editorTb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3editor

Tff7b72def Td2a8fftoggle_editorTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fffull_editor_activeTb4b4b4:
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8fffull_editor_active Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ffcheck_editor_allowedTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Tff7b72selfTff7b72.Td2a8ffframeTb4b4b4:
Te6edf3allowed Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffdirectoryTff7b72.Td2a8ffis_knownTb4b4b4(Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Tff7b72selfTff7b72.Td2a8ffsource_hashTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3allowedTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3warning Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPaddingTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Tffea00\nTa5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffinfoTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Tffea00\nTffea00\nTa5d6ffYou cannot currently message this peer, since its identity keys are not known. Ta5d6ff"
Ta5d6ff"Ta5d6ffThe keys have been requested from the network and should arrive shortly, if available. Ta5d6ff"
Ta5d6ff"Ta5d6ffClose this conversation and reopen it to try again.Tffea00\nTffea00\nTa5d6ff"
Ta5d6ff"Ta5d6ffTo query the network manually, select this conversation in the conversation list, Ta5d6ff"
Ta5d6ff"Ta5d6ffpress Ctrl-E, and use the query button.Tffea00\nTa5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffmsg_header_cautionTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3warningTb4b4b4, Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8fftoggle_focus_areaTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3name Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72tryTb4b4b4:
Te6edf3name Tff7b72= Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffget_focus_widgetsTb4b4b4(Tb4b4b4)Tb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffname
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Tff7b72pass

Tff7b72if Te6edf3name Tff7b72== Ta5d6ff"Ta5d6ffmessagelistTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6fffooterTa5d6ff"
Tff7b72elif Te6edf3name Tff7b72== Ta5d6ff"Ta5d6ffminimal_editorTa5d6ff" Tff7b72or Te6edf3name Tff7b72== Ta5d6ff"Ta5d6fffull_editorTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6fftabTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftoggle_focus_areaTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl wTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl uTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffpurge_failedTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl tTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fftoggle_editorTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl xTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_history_dialogTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl gTa5d6ff"Tb4b4b4:
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffsub_displaysTff7b72.Td2a8ffconversations_displayTff7b72.Td2a8fftoggle_fullscreenTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl oTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsort_by_timestamp Tff7b72^Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl aTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffattach_fileTb4b4b4(Tb4b4b4)
Tff7b72elif Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffctrl sTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsave_focused_attachmentsTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tffa657superTb4b4b4(Te6edf3ConversationWidgetTb4b4b4, Tff7b72selfTb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)

Tff7b72def Td2a8ff_on_conversation_changed_from_callbackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ff_wakeTb4b4b4(Tff7b72lambdaTb4b4b4: Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Te6edf3conversationTb4b4b4)Tb4b4b4)

Tff7b72def Td2a8ffconversation_changedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3conversationTb4b4b4)Tb4b4b4:
Tff7b72if Tffa657hasattrTb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ffpeer_info_widgetTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_update_peer_infoTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffupdate_message_widgetsTb4b4b4(Te6edf3replace Tff7b72= Tff7b72TrueTb4b4b4)

Tff7b72def Td2a8ffupdate_message_widgetsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3replace Tff7b72= Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_widgets Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3added_hashes Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3needs_index Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3message Tff7b72in Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffmessagesTb4b4b4:
Te6edf3message_hash Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_hashTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3message_hash Tff7b72in Te6edf3added_hashesTb4b4b4:
Te6edf3added_hashesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3message_hashTb4b4b4)
Te6edf3was_loaded Tff7b72= Te6edf3messageTff7b72.Td2a8ffloaded
Tff7b72tryTb4b4b4:
Te6edf3message_widget Tff7b72= Te6edf3LXMessageWidgetTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3themeTff7b72=Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftextuiTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffthemeTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffSkipping message widget for Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3messageTff7b72.Td2a8fffile_pathTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff due to error: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_DEBUGTb4b4b4)
Te6edf3messageTff7b72.Td2a8ffunloadTb4b4b4(Tb4b4b4)
Tff7b72continue
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3message_widgetTb4b4b4)
Tff7b72if Tff7b72not Te6edf3was_loaded Tff7b72and Te6edf3messageTff7b72.Td2a8ffloadedTb4b4b4:
Te6edf3needs_indexTff7b72.Td2a8ffappendTb4b4b4(Te6edf3messageTb4b4b4)
Te6edf3messageTff7b72.Td2a8ffunloadTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3needs_indexTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3ConversationMessageTff7b72.Td2a8ffwrite_indexTb4b4b4(
Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffmessages_pathTb4b4b4, Te6edf3needs_indexTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Tff7b72if Tff7b72selfTff7b72.Td2a8ffsort_by_timestampTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffsortTb4b4b4(Te6edf3keyTff7b72=Tff7b72lambda Te6edf3mTb4b4b4: Te6edf3mTff7b72.Td2a8fftimestampTb4b4b4, Te6edf3reverseTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTff7b72.Td2a8ffsortTb4b4b4(Te6edf3keyTff7b72=Tff7b72lambda Te6edf3mTb4b4b4: Te6edf3mTff7b72.Td2a8ffsort_timestampTb4b4b4, Te6edf3reverseTff7b72=Tff7b72FalseTb4b4b4)

Tff7b72from T7ee787nomadnetT7ee787.T7ee787vendorT7ee787.T7ee787additional_urwid_widgets Tff7b72import Te6edf3IndicativeListBox
Tff7b72selfTff7b72.Td2a8ffmessagelist Tff7b72= Te6edf3IndicativeListBoxTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTb4b4b4, Te6edf3position Tff7b72= Tffa657lenTb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessage_widgetsTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmessagelistTff7b72.Td2a8ffname Tff7b72= Ta5d6ff"Ta5d6ffmessagelistTa5d6ff"
Tff7b72if Te6edf3replaceTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffmessagelistTb4b4b4, Tff7b72NoneTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffloopTff7b72.Td2a8ffdraw_screenTb4b4b4(Tb4b4b4)


Tff7b72def Td2a8ffclear_editorTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffset_edit_textTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffset_edit_textTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffpending_attachments Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ff_collect_attachment_refsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Te6edf3refs Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3sorted_messages Tff7b72= Tffa657sortedTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffmessagesTb4b4b4, Te6edf3keyTff7b72=Tff7b72lambda Te6edf3mTb4b4b4: Te6edf3mTff7b72.Td2a8ffsort_timestampTb4b4b4, Te6edf3reverseTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72for Te6edf3conv_message Tff7b72in Te6edf3sorted_messagesTb4b4b4:
Tff7b72if Tff7b72not Te6edf3conv_messageTff7b72.Td2a8ffhas_attachmentsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72continue

Te6edf3cached_names Tff7b72= Te6edf3conv_messageTff7b72.Td2a8ff_cached_attachment_names Tff7b72or Tb4b4b4[Tb4b4b4]
Te6edf3att_file_idx Tff7b72= T79c0ff0
Tff7b72for Te6edf3atypeTb4b4b4, Te6edf3anameTb4b4b4, Tff7b72*Te6edf3arest Tff7b72in Te6edf3cached_namesTb4b4b4:
Te6edf3asize Tff7b72= Te6edf3arestTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72if Te6edf3arest Tff7b72else T79c0ff0
Te6edf3glyph Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4] Tff7b72if Te6edf3atype Tff7b72== Ta5d6ff"Ta5d6fffileTa5d6ff" Tff7b72else Te6edf3gTb4b4b4[Te6edf3atypeTb4b4b4]
Te6edf3label Tff7b72= Te6edf3glyphTff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3aname
Tff7b72if Te6edf3asize Tff7b72> T79c0ff0Tb4b4b4:
Te6edf3label Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff (Ta5d6ff"Tff7b72+Te6edf3_format_sizeTb4b4b4(Te6edf3asizeTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff)Ta5d6ff"
Tff7b72if Te6edf3atype Tff7b72== Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4:
Te6edf3refsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3labelTb4b4b4, Te6edf3anameTb4b4b4, Te6edf3conv_messageTb4b4b4, Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4, Te6edf3att_file_idxTb4b4b4)Tb4b4b4)
Te6edf3att_file_idx Tff7b72+Tff7b72= T79c0ff1
Tff7b72elseTb4b4b4:
Te6edf3refsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3labelTb4b4b4, Te6edf3anameTb4b4b4, Te6edf3conv_messageTb4b4b4, Te6edf3atypeTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)

Tff7b72return Te6edf3refs

Tff7b72def Td2a8ffsave_focused_attachmentsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72True

Tff7b72tryTb4b4b4:
Te6edf3attachment_items Tff7b72= Tff7b72selfTff7b72.Td2a8ff_collect_attachment_refsTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError collecting attachments: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3attachment_items Tff7b72= Tb4b4b4[Tb4b4b4]

Te6edf3save_dir Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffattachment_save_path Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffattachment_save_path Tff7b72else Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdownloads_path

Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Tff7b72if Tff7b72not Te6edf3attachment_itemsTb4b4b4:
Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffNo attachments in this conversation.Tffea00\nTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffAttachmentsTa5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=T79c0ff45Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"
Tff7b72return

Te6edf3checkboxes Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3labelTb4b4b4, Te6edf3filenameTb4b4b4, Te6edf3conv_msgTb4b4b4, Te6edf3field_typeTb4b4b4, Te6edf3field_index Tff7b72in Te6edf3attachment_itemsTb4b4b4:
Te6edf3cb Tff7b72= Te6edf3urwidTff7b72.Td2a8ffCheckBoxTb4b4b4(Te6edf3labelTb4b4b4, Te6edf3stateTff7b72=Tff7b72FalseTb4b4b4)
Te6edf3cbTff7b72.Td2a8ff_attachment_filename Tff7b72= Te6edf3filename
Te6edf3cbTff7b72.Td2a8ff_conv_message Tff7b72= Te6edf3conv_msg
Te6edf3cbTff7b72.Td2a8ff_field_type Tff7b72= Te6edf3field_type
Te6edf3cbTff7b72.Td2a8ff_field_index Tff7b72= Te6edf3field_index
Te6edf3checkboxesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3cbTb4b4b4)

Te6edf3status_text Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffdo_saveTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3saved Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3errors Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3cb Tff7b72in Te6edf3checkboxesTb4b4b4:
Tff7b72if Te6edf3cbTff7b72.Td2a8ffget_stateTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3src_path Tff7b72= Te6edf3cbTff7b72.Td2a8ff_conv_messageTff7b72.Td2a8ffget_attachment_file_pathTb4b4b4(Te6edf3cbTff7b72.Td2a8ff_field_typeTb4b4b4, Te6edf3cbTff7b72.Td2a8ff_field_indexTb4b4b4)
Tff7b72if Te6edf3src_path Tff7b72and Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Te6edf3src_pathTb4b4b4)Tb4b4b4:
Te6edf3path Tff7b72= Te6edf3_copy_attachment_to_destTb4b4b4(Te6edf3cbTff7b72.Td2a8ff_attachment_filenameTb4b4b4, Te6edf3src_pathTb4b4b4)
Te6edf3savedTff7b72.Td2a8ffappendTb4b4b4(Te6edf3pathTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3errorsTff7b72.Td2a8ffappendTb4b4b4(Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)

Tff7b72if Te6edf3savedTb4b4b4:
Te6edf3lines Tff7b72= Tb4b4b4[Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Copied Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Te6edf3savedTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff file(s) to Ta5d6ff"Tff7b72+Te6edf3save_dirTff7b72+Ta5d6ff"Ta5d6ff:Ta5d6ff"Tb4b4b4]
Tff7b72for Te6edf3p Tff7b72in Te6edf3savedTb4b4b4:
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3pTb4b4b4)Tb4b4b4)
Tff7b72if Te6edf3errorsTb4b4b4:
Te6edf3linesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Te6edf3errorsTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff failedTa5d6ff"Tb4b4b4)
Te6edf3status_textTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3linesTb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3errorsTb4b4b4:
Te6edf3status_textTff7b72.Td2a8ffset_textTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Failed: Ta5d6ff"Tff7b72+Te6edf3errorsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3status_textTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ffNo files selectedTa5d6ff"Tb4b4b4)

Te6edf3dialog_widgets Tff7b72= Tffa657listTb4b4b4(Te6edf3checkboxesTb4b4b4)
Te6edf3dialog_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4)
Te6edf3dialog_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffCopy to: Ta5d6ff"Tff7b72+Te6edf3save_dirTb4b4b4)Tb4b4b4)
Te6edf3dialog_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3status_textTb4b4b4)
Te6edf3dialog_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3dialog_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCopy to DownloadsTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3do_saveTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCloseTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffListBoxTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffSimpleFocusListWalkerTb4b4b4(Te6edf3dialog_widgetsTb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffAttachmentsTa5d6ff"Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff80Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff80Tb4b4b4)Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8ffsend_messageTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3content Tff7b72= Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3content Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3fields Tff7b72= Tff7b72None
Tff7b72if Tff7b72selfTff7b72.Td2a8ffpending_attachmentsTb4b4b4:
Te6edf3file_attachments Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3file_path Tff7b72in Tff7b72selfTff7b72.Td2a8ffpending_attachmentsTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72with Tffa657openTb4b4b4(Te6edf3file_pathTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3afTb4b4b4:
Te6edf3file_data Tff7b72= Te6edf3afTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Te6edf3file_name Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3file_pathTb4b4b4)
Te6edf3file_attachmentsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4[Te6edf3file_nameTb4b4b4, Te6edf3file_dataTb4b4b4]Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError reading attachment Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3file_pathTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)

Tff7b72if Te6edf3file_attachmentsTb4b4b4:
Te6edf3fields Tff7b72= Tb4b4b4{Te6edf3LXMFTff7b72.Td2a8ffFIELD_FILE_ATTACHMENTSTb4b4b4: Te6edf3file_attachmentsTb4b4b4}

Tff7b72if Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffcompose_markdownTb4b4b4:
Tff7b72if Tff7b72not Te6edf3fieldsTb4b4b4: Te6edf3fields Tff7b72= Tb4b4b4{Tb4b4b4}
Te6edf3fieldsTb4b4b4[Te6edf3LXMFTff7b72.Td2a8ffFIELD_RENDERERTb4b4b4] Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffRENDERER_MARKDOWN

Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffsendTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3titleTb4b4b4, Te6edf3fieldsTff7b72=Te6edf3fieldsTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffattach_fileTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72True
Te6edf3browser Tff7b72= Te6edf3FileBrowserDialogTb4b4b4(Tff7b72selfTb4b4b4)
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist
Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3browserTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff90Tb4b4b4)Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Tb4b4b4(Ta5d6ff"Ta5d6ffrelativeTa5d6ff"Tb4b4b4, T79c0ff80Tb4b4b4)Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8fffile_browser_closedTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_active Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ffpaper_message_savedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4:
Te6edf3g Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ffThe paper message was saved to:Tffea00\nTffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pathTb4b4b4)Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffpapermsgTa5d6ff"Tb4b4b4]Tff7b72.Td2a8ffreplaceTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=T79c0ff60Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8ffprint_paper_message_qrTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3content Tff7b72= Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3content Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffpaper_outputTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3titleTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpaper_message_failedTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_paper_message_qrTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3content Tff7b72= Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3content Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3output_result Tff7b72= Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffpaper_outputTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3titleTb4b4b4, Te6edf3modeTff7b72=Ta5d6ff"Ta5d6ffsave_qrTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3output_result Tff7b72!= Tff7b72FalseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffpaper_message_savedTb4b4b4(Te6edf3output_resultTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpaper_message_failedTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_paper_message_uriTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3content Tff7b72= Tff7b72selfTff7b72.Td2a8ffcontent_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Te6edf3title Tff7b72= Tff7b72selfTff7b72.Td2a8fftitle_editorTff7b72.Td2a8ffget_edit_textTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3content Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3output_result Tff7b72= Tff7b72selfTff7b72.Td2a8ffconversationTff7b72.Td2a8ffpaper_outputTb4b4b4(Te6edf3contentTb4b4b4, Te6edf3titleTb4b4b4, Te6edf3modeTff7b72=Ta5d6ff"Ta5d6ffsave_uriTa5d6ff"Tb4b4b4)
Tff7b72if Te6edf3output_result Tff7b72!= Tff7b72FalseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclear_editorTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffpaper_message_savedTb4b4b4(Te6edf3output_resultTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpaper_message_failedTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffpaper_messageTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Tff7b72def Td2a8ffprint_qrTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3dismiss_dialogTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffprint_paper_message_qrTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_qrTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3dismiss_dialogTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsave_paper_message_qrTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffsave_uriTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Te6edf3dismiss_dialogTb4b4b4(Tff7b72selfTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsave_paper_message_uriTb4b4b4(Tb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Ta5d6ffSelect the desired paper message output method.Tffea00\nTa5d6ffSaved files will be written to:Tffea00\nTffea00\nTa5d6ff"Tff7b72+Tffa657strTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffdownloads_pathTb4b4b4)Tff7b72+Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.5Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffPrint QRTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3print_qrTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.5Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSave QRTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3save_qrTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.5Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffSave URITa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3save_uriTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.5Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCancelTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffCreate Paper MessageTa5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=T79c0ff60Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8ffpaper_message_failedTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffdismiss_dialogTb4b4b4(Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdialog_open Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffconversation_changedTb4b4b4(Tff7b72NoneTb4b4b4)

Te6edf3dialog Tff7b72= Te6edf3DialogLineBoxTb4b4b4(
Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(
Ta5d6ff"Ta5d6ffCould not output paper message,Tffea00\nTa5d6ffcheck your settings. See the logTffea00\nTa5d6fffile for any error messages.Tffea00\nTa5d6ff"Tb4b4b4,
Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.6Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.4Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Te6edf3dismiss_dialogTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)
Tb4b4b4]Tb4b4b4)Tb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff!Ta5d6ff"
Tb4b4b4)
Te6edf3dialogTff7b72.Td2a8ffdelegate Tff7b72= Tff7b72self
Te6edf3bottom Tff7b72= Tff7b72selfTff7b72.Td2a8ffmessagelist

Te6edf3overlay Tff7b72= Te6edf3urwidTff7b72.Td2a8ffOverlayTb4b4b4(Te6edf3dialogTb4b4b4, Te6edf3bottomTb4b4b4, Te6edf3alignTff7b72=Te6edf3urwidTff7b72.Td2a8ffCENTERTb4b4b4, Te6edf3widthTff7b72=T79c0ff34Tb4b4b4, Te6edf3valignTff7b72=Te6edf3urwidTff7b72.Td2a8ffMIDDLETb4b4b4, Te6edf3heightTff7b72=Te6edf3urwidTff7b72.Td2a8ffPACKTb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3overlayTb4b4b4, Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8ffoptionsTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffframeTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"

Tff7b72def Td2a8ffcloseTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffclose_conversationTb4b4b4(Tff7b72selfTb4b4b4)


Tff7b72class T56d364LXMessageWidgetTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Te6edf3mdc Tff7b72= Te6edf3MarkdownToMicronTb4b4b4(Te6edf3max_widthTff7b72=T79c0ff80Tb4b4b4, Te6edf3syntax_highlighterTff7b72=Te6edf3SyntaxHighlighterTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3url_scopeTff7b72=Tff7b72NoneTb4b4b4)

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3messageTb4b4b4, Te6edf3themeTff7b72=Te6edf3THEME_DARKTb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8fftimestamp Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_timestampTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsort_timestamp Tff7b72= Te6edf3messageTff7b72.Td2a8ffsort_timestamp
Tff7b72selfTff7b72.Td2a8fftransfer_done Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72= Tff7b72None

Te6edf3msg_hash Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_hashTb4b4b4(Tb4b4b4)
Te6edf3msg_state Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_stateTb4b4b4(Tb4b4b4)
Te6edf3msg_source_hash Tff7b72= Te6edf3messageTff7b72.Td2a8ff_cached_source_hash
Te6edf3msg_method Tff7b72= Te6edf3messageTff7b72.Td2a8ff_cached_method
Te6edf3time_format Tff7b72= Te6edf3appTff7b72.Td2a8fftime_format
Te6edf3message_time Tff7b72= Te6edf3datetimeTff7b72.Td2a8fffromtimestampTb4b4b4(Tff7b72selfTff7b72.Td2a8fftimestampTb4b4b4)
Te6edf3renderer Tff7b72= Te6edf3messageTff7b72.Td2a8ffcontent_rendererTb4b4b4(Tb4b4b4)
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Te6edf3messageTff7b72.Td2a8ffget_transport_encryptedTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffencryptedTa5d6ff"Tb4b4b4]
Tff7b72elseTb4b4b4:
Te6edf3encryption_string Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffplaintextTa5d6ff"Tb4b4b4]

Te6edf3title_string Tff7b72= Te6edf3relative_timeTb4b4b4(Tff7b72selfTff7b72.Td2a8fftimestampTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff | Ta5d6ff"Tff7b72+Te6edf3message_timeTff7b72.Td2a8ffstrftimeTb4b4b4(Te6edf3time_formatTb4b4b4)Tff7b72+Te6edf3encryption_string

Te6edf3is_outbound Tff7b72= Tff7b72False
Tff7b72if Te6edf3msg_source_hash Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_failedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3appTff7b72.Td2a8fflxmf_destinationTff7b72.Td2a8ffhash Tff7b72== Te6edf3msg_source_hashTb4b4b4:
Te6edf3is_outbound Tff7b72= Tff7b72True
Tff7b72if Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffDELIVEREDTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_deliveredTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffFAILEDTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_failedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffREJECTEDTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_failedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Rejected Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3msg_method Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffPROPAGATED Tff7b72and Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENTTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_propagatedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3msg_method Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffPAPER Tff7b72and Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffPAPERTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_propagatedTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffpapermsgTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elif Te6edf3msg_state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENTTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffsentTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3messageTff7b72.Td2a8ffsignature_validatedTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_okTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_lTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3title_string
Tff7b72elseTb4b4b4:
Te6edf3header_style Tff7b72= Ta5d6ff"Ta5d6ffmsg_header_cautionTa5d6ff"
Te6edf3title_string Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffwarningTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_lTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3messageTff7b72.Td2a8ffget_signature_descriptionTb4b4b4(Tb4b4b4) Tff7b72+ Ta5d6ff"Tffea00\nTa5d6ff Ta5d6ff" Tff7b72+ Te6edf3title_string

Tff7b72if Te6edf3messageTff7b72.Td2a8ffget_titleTb4b4b4(Tb4b4b4) Tff7b72!= Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3title_string Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff | Ta5d6ff" Tff7b72+ Te6edf3messageTff7b72.Td2a8ffget_titleTb4b4b4(Tb4b4b4)

Te6edf3has_attachments Tff7b72= Te6edf3messageTff7b72.Td2a8ffhas_attachmentsTb4b4b4(Tb4b4b4)
Te6edf3cached_names Tff7b72= Te6edf3messageTff7b72.Td2a8ff_cached_attachment_names Tff7b72or Tb4b4b4[Tb4b4b4]

Tff7b72if Te6edf3has_attachments Tff7b72and Te6edf3cached_namesTb4b4b4:
Te6edf3attachment_strings Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3atypeTb4b4b4, Te6edf3anameTb4b4b4, Tff7b72*Te6edf3arest Tff7b72in Te6edf3cached_namesTb4b4b4:
Te6edf3attachment_stringsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3gTb4b4b4[Te6edf3atype Tff7b72if Te6edf3atype Tff7b72!= Ta5d6ff"Ta5d6fffileTa5d6ff" Tff7b72else Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3anameTb4b4b4)
Te6edf3title_string Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff | Ta5d6ff" Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3attachment_stringsTb4b4b4)

Te6edf3title Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3title_stringTb4b4b4)Tb4b4b4, Te6edf3header_styleTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffprogress_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffprogress_attr Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Tff7b72selfTff7b72.Td2a8ffprogress_widgetTb4b4b4, Ta5d6ff"Ta5d6ffprogress_fullTa5d6ff"Tb4b4b4)

Te6edf3content_text Tff7b72= Te6edf3messageTff7b72.Td2a8ffget_contentTb4b4b4(Tb4b4b4)
Te6edf3content_lines Tff7b72= Te6edf3content_textTff7b72.Td2a8ffsplitTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4)
Te6edf3markdown Tff7b72= Te6edf3renderer Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffRENDERER_MARKDOWN

Te6edf3default_fg Tff7b72= Ta5d6ff"Ta5d6ffbbbTa5d6ff" Tff7b72if Te6edf3theme Tff7b72== Te6edf3THEME_DARK Tff7b72else Ta5d6ff"Ta5d6ff444Ta5d6ff"
Tff7b72if Te6edf3markdownTb4b4b4:
Te6edf3formatted Tff7b72= Tff7b72selfTff7b72.Td2a8ffmdcTff7b72.Td2a8ffformat_blockTb4b4b4(Te6edf3content_textTb4b4b4)
Te6edf3message_body Tff7b72= Te6edf3strip_non_formatting_tagsTb4b4b4(Te6edf3formattedTb4b4b4)
Te6edf3rendered Tff7b72= Te6edf3markup_to_attrmapsTb4b4b4(Te6edf3strip_modifiersTb4b4b4(Te6edf3message_bodyTb4b4b4)Tb4b4b4, Te6edf3url_delegateTff7b72=Tff7b72NoneTb4b4b4, Te6edf3fg_colorTff7b72=Te6edf3default_fgTb4b4b4, Te6edf3bg_colorTff7b72=Tff7b72NoneTb4b4b4)
Te6edf3content_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPaddingTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Te6edf3renderedTb4b4b4)Tb4b4b4, Te6edf3leftTff7b72=T79c0ff2Tb4b4b4, Te6edf3rightTff7b72=T79c0ff2Tb4b4b4)

Tff7b72elseTb4b4b4: Te6edf3indented Tff7b72= Ta5d6ff"Tffea00\nTa5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3line Tff7b72for Te6edf3line Tff7b72in Te6edf3content_linesTb4b4b4)

Te6edf3pile_widgets Tff7b72= Tb4b4b4[Te6edf3titleTb4b4b4]

Tff7b72if Te6edf3is_outbound Tff7b72and Te6edf3msg_state Tff7b72is Tff7b72not Tff7b72None Tff7b72and Te6edf3msg_state Tff7b72< Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENT Tff7b72and Te6edf3msg_hash Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72for Te6edf3pending Tff7b72in Te6edf3appTff7b72.Td2a8ffmessage_routerTff7b72.Td2a8ffpending_outboundTb4b4b4:
Tff7b72if Te6edf3pendingTff7b72.Td2a8ffhash Tff7b72== Te6edf3msg_hashTb4b4b4:
Tff7b72if Te6edf3pendingTff7b72.Td2a8ffrepresentation Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffRESOURCETb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72= Te6edf3pending
Tff7b72break
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Tff7b72if Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Te6edf3pct Tff7b72= Tffa657intTb4b4b4(Tff7b72selfTff7b72.Td2a8ff_live_lxmTff7b72.Td2a8ffprogress Tff7b72* T79c0ff100Tb4b4b4)
Te6edf3bar_width Tff7b72= T79c0ff20
Te6edf3filled Tff7b72= Tffa657intTb4b4b4(Te6edf3bar_width Tff7b72* Tff7b72selfTff7b72.Td2a8ff_live_lxmTff7b72.Td2a8ffprogressTb4b4b4)
Tff7b72if Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffcolormode Tff7b72>Tff7b72= T79c0ff256Tb4b4b4:
Te6edf3bar Tff7b72= Ta5d6ff"Tffea00\u2588Ta5d6ff" Tff7b72* Te6edf3filled Tff7b72+ Ta5d6ff"Tffea00\u2591Ta5d6ff" Tff7b72* Tb4b4b4(Te6edf3bar_width Tff7b72- Te6edf3filledTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3bar Tff7b72= Ta5d6ff"Ta5d6ff#Ta5d6ff" Tff7b72* Te6edf3filled Tff7b72+ Ta5d6ff"Ta5d6ff-Ta5d6ff" Tff7b72* Tb4b4b4(Te6edf3bar_width Tff7b72- Te6edf3filledTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffprogress_widgetTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff [Ta5d6ff"Tff7b72+Te6edf3barTff7b72+Ta5d6ff"Ta5d6ff] Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pctTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff%Ta5d6ff"Tb4b4b4)
Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Tff7b72selfTff7b72.Td2a8ffprogress_attrTb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_start_progress_pollTb4b4b4(Tb4b4b4)

Tff7b72if Te6edf3markdownTb4b4b4: Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3content_pileTb4b4b4)
Tff7b72elseTb4b4b4: Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3indentedTb4b4b4)Tb4b4b4)

Tff7b72if Te6edf3has_attachments Tff7b72and Te6edf3cached_namesTb4b4b4:
Te6edf3att_file_idx Tff7b72= T79c0ff0
Tff7b72for Te6edf3atypeTb4b4b4, Te6edf3anameTb4b4b4, Tff7b72*Te6edf3arest Tff7b72in Te6edf3cached_namesTb4b4b4:
Te6edf3glyph Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4] Tff7b72if Te6edf3atype Tff7b72== Ta5d6ff"Ta5d6fffileTa5d6ff" Tff7b72else Te6edf3gTb4b4b4[Te6edf3atypeTb4b4b4]
Te6edf3asize Tff7b72= Te6edf3arestTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72if Te6edf3arest Tff7b72else T79c0ff0
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3glyphTff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3aname
Tff7b72if Te6edf3asize Tff7b72> T79c0ff0Tb4b4b4:
Te6edf3label Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff (Ta5d6ff"Tff7b72+Te6edf3_format_sizeTb4b4b4(Te6edf3asizeTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff)Ta5d6ff"
Tff7b72if Te6edf3atype Tff7b72== Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4:
Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3ClickableAttachmentTb4b4b4(Te6edf3labelTb4b4b4, Te6edf3anameTb4b4b4, Te6edf3messageTb4b4b4, Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4, Te6edf3att_file_idxTb4b4b4)Tb4b4b4)
Te6edf3att_file_idx Tff7b72+Tff7b72= T79c0ff1
Tff7b72elseTb4b4b4:
Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3ClickableAttachmentTb4b4b4(Te6edf3labelTb4b4b4, Te6edf3anameTb4b4b4, Te6edf3messageTb4b4b4, Te6edf3atypeTb4b4b4)Tb4b4b4)

Te6edf3pile_widgetsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)

Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Te6edf3pile_widgetsTb4b4b4)Tb4b4b4)

Tff7b72def Td2a8ff_start_progress_pollTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3loop Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffloop
Tff7b72if Te6edf3loopTb4b4b4:
Te6edf3loopTff7b72.Td2a8ffset_alarm_inTb4b4b4(T79c0ff0.3Tb4b4b4, Tff7b72selfTff7b72.Td2a8ff_poll_progressTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Tff7b72def Td2a8ff_poll_progressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3loopTff7b72=Tff7b72NoneTb4b4b4, Te6edf3user_dataTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fftransfer_doneTb4b4b4:
Tff7b72return

Tff7b72if Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72is Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8fftransfer_done Tff7b72= Tff7b72True
Tff7b72return

Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Te6edf3progress Tff7b72= Tff7b72selfTff7b72.Td2a8ff_live_lxmTff7b72.Td2a8ffprogress
Te6edf3state Tff7b72= Tff7b72selfTff7b72.Td2a8ff_live_lxmTff7b72.Td2a8ffstate
Te6edf3pct Tff7b72= Tffa657intTb4b4b4(Te6edf3progress Tff7b72* T79c0ff100Tb4b4b4)

Tff7b72if Te6edf3state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffFAILEDTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprogress_widgetTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Transfer failedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftransfer_done Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72= Tff7b72None
Tff7b72elif Te6edf3state Tff7b72== Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffREJECTEDTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprogress_widgetTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Rejected: too large or not acceptedTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftransfer_done Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72= Tff7b72None
Tff7b72elif Te6edf3state Tff7b72>Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffSENTTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprogress_widgetTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fftransfer_done Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ff_live_lxm Tff7b72= Tff7b72None
Tff7b72elseTb4b4b4:
Te6edf3bar_width Tff7b72= T79c0ff20
Te6edf3filled Tff7b72= Tffa657intTb4b4b4(Te6edf3bar_width Tff7b72* Te6edf3progressTb4b4b4)
Tff7b72if Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffcolormode Tff7b72>Tff7b72= T79c0ff256Tb4b4b4:
Te6edf3bar Tff7b72= Ta5d6ff"Tffea00\u2588Ta5d6ff" Tff7b72* Te6edf3filled Tff7b72+ Ta5d6ff"Tffea00\u2591Ta5d6ff" Tff7b72* Tb4b4b4(Te6edf3bar_width Tff7b72- Te6edf3filledTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3bar Tff7b72= Ta5d6ff"Ta5d6ff#Ta5d6ff" Tff7b72* Te6edf3filled Tff7b72+ Ta5d6ff"Ta5d6ff-Ta5d6ff" Tff7b72* Tb4b4b4(Te6edf3bar_width Tff7b72- Te6edf3filledTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffprogress_widgetTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff [Ta5d6ff"Tff7b72+Te6edf3barTff7b72+Ta5d6ff"Ta5d6ff] Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3pctTb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff%Ta5d6ff"Tb4b4b4)

Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8fftransfer_doneTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3ui_loop Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffloop
Tff7b72if Te6edf3ui_loopTb4b4b4:
Te6edf3ui_loopTff7b72.Td2a8ffset_alarm_inTb4b4b4(T79c0ff0.3Tb4b4b4, Tff7b72selfTff7b72.Td2a8ff_poll_progressTb4b4b4)
Te6edf3ui_loopTff7b72.Td2a8ffdraw_screenTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass


Tff7b72class T56d364ClickableAttachmentTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3labelTb4b4b4, Te6edf3filenameTb4b4b4, Te6edf3conv_messageTb4b4b4, Te6edf3field_typeTb4b4b4, Te6edf3field_indexTff7b72=T79c0ff0Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fffilename Tff7b72= Te6edf3filename
Tff7b72selfTff7b72.Td2a8ffconv_message Tff7b72= Te6edf3conv_message
Tff7b72selfTff7b72.Td2a8fffield_type Tff7b72= Te6edf3field_type
Tff7b72selfTff7b72.Td2a8fffield_index Tff7b72= Te6edf3field_index
Tff7b72selfTff7b72.Td2a8ffsaved Tff7b72= Tff7b72False
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3labelTb4b4b4)

Tff7b72def Td2a8ffmouse_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3buttonTb4b4b4, Te6edf3xTb4b4b4, Te6edf3yTb4b4b4, Te6edf3focusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3button Tff7b72== T79c0ff1 Tff7b72and Te6edf3urwidTff7b72.Td2a8ffutilTff7b72.Td2a8ffis_mouse_pressTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_saveTb4b4b4(Tb4b4b4)
Tff7b72return Tff7b72True
Tff7b72return Tff7b72False

Tff7b72def Td2a8ff_saveTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffsavedTb4b4b4:
Tff7b72return
Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3g Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72tryTb4b4b4:
Te6edf3src_path Tff7b72= Tff7b72selfTff7b72.Td2a8ffconv_messageTff7b72.Td2a8ffget_attachment_file_pathTb4b4b4(Tff7b72selfTff7b72.Td2a8fffield_typeTb4b4b4, Tff7b72selfTff7b72.Td2a8fffield_indexTb4b4b4)
Tff7b72if Te6edf3src_path Tff7b72and Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Te6edf3src_pathTb4b4b4)Tb4b4b4:
Te6edf3save_path Tff7b72= Te6edf3_copy_attachment_to_destTb4b4b4(Tff7b72selfTff7b72.Td2a8fffilenameTb4b4b4, Te6edf3src_pathTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8fffield_type Tff7b72== Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4:
Te6edf3attachments Tff7b72= Tff7b72selfTff7b72.Td2a8ffconv_messageTff7b72.Td2a8ffget_file_attachmentsTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8fffield_index Tff7b72< Tffa657lenTb4b4b4(Te6edf3attachmentsTb4b4b4)Tb4b4b4:
Te6edf3att Tff7b72= Te6edf3attachmentsTb4b4b4[Tff7b72selfTff7b72.Td2a8fffield_indexTb4b4b4]
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3attTb4b4b4, Tffa657listTb4b4b4) Tff7b72and Tffa657lenTb4b4b4(Te6edf3attTb4b4b4) Tff7b72>Tff7b72= T79c0ff2Tb4b4b4:
Te6edf3data Tff7b72= Te6edf3attTb4b4b4[T79c0ff1Tb4b4b4] Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3attTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4, Tffa657bytesTb4b4b4) Tff7b72else Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3data Tff7b72= Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3data Tff7b72= Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72elif Tff7b72selfTff7b72.Td2a8fffield_type Tff7b72== Ta5d6ff"Ta5d6ffimageTa5d6ff"Tb4b4b4:
Te6edf3data Tff7b72= Tff7b72selfTff7b72.Td2a8ffconv_messageTff7b72.Td2a8ffget_imageTb4b4b4(Tb4b4b4)
Te6edf3data Tff7b72= Te6edf3data Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3dataTb4b4b4, Tffa657bytesTb4b4b4) Tff7b72else Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72elif Tff7b72selfTff7b72.Td2a8fffield_type Tff7b72== Ta5d6ff"Ta5d6ffaudioTa5d6ff"Tb4b4b4:
Te6edf3data Tff7b72= Tff7b72selfTff7b72.Td2a8ffconv_messageTff7b72.Td2a8ffget_audioTb4b4b4(Tb4b4b4)
Te6edf3data Tff7b72= Te6edf3data Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3dataTb4b4b4, Tffa657bytesTb4b4b4) Tff7b72else Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3data Tff7b72= Ta5d6ffbTa5d6ff"Ta5d6ff"
Tff7b72selfTff7b72.Td2a8ffconv_messageTff7b72.Td2a8ffunloadTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72not Te6edf3dataTb4b4b4:
Tff7b72return
Te6edf3save_path Tff7b72= Te6edf3_save_attachment_to_diskTb4b4b4(Tff7b72selfTff7b72.Td2a8fffilenameTb4b4b4, Te6edf3dataTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffsaved Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Copied to: Ta5d6ff"Tff7b72+Te6edf3save_pathTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3eTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffError saving attachment: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcrossTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Save failed: Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4)


Tff7b72def Td2a8ff_resolve_attachment_save_pathTb4b4b4(Te6edf3filenameTb4b4b4)Tb4b4b4:
Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Te6edf3save_dir Tff7b72= Te6edf3appTff7b72.Td2a8ffattachment_save_path Tff7b72if Te6edf3appTff7b72.Td2a8ffattachment_save_path Tff7b72else Te6edf3appTff7b72.Td2a8ffdownloads_path
Tff7b72if Tff7b72not Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisdirTb4b4b4(Te6edf3save_dirTb4b4b4)Tb4b4b4:
Te6edf3osTff7b72.Td2a8ffmakedirsTb4b4b4(Te6edf3save_dirTb4b4b4)
Te6edf3safe_name Tff7b72= Te6edf3ConversationMessageTff7b72.Td2a8ffsafe_attachment_nameTb4b4b4(Te6edf3filenameTb4b4b4)
Te6edf3base_dir Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffrealpathTb4b4b4(Te6edf3save_dirTb4b4b4) Tff7b72+ Te6edf3osTff7b72.Td2a8ffsep
Te6edf3candidate Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffrealpathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Te6edf3save_dirTb4b4b4, Te6edf3safe_nameTb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3candidate Tff7b72+ Te6edf3osTff7b72.Td2a8ffsepTb4b4b4)Tff7b72.Td2a8ffstartswithTb4b4b4(Te6edf3base_dirTb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149OSErrorTb4b4b4(T79c0ff13Tb4b4b4, Te6edf3osTff7b72.Td2a8ffstrerrorTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4)
Te6edf3counter Tff7b72= T79c0ff0
Te6edf3baseTb4b4b4, Te6edf3ext Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffsplitextTb4b4b4(Te6edf3safe_nameTb4b4b4)
Tff7b72while Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Te6edf3candidateTb4b4b4)Tb4b4b4:
Te6edf3counter Tff7b72+Tff7b72= T79c0ff1
Te6edf3candidate Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffrealpathTb4b4b4(Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Te6edf3save_dirTb4b4b4, Te6edf3baseTff7b72+Ta5d6ff"Ta5d6ff_Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3counterTb4b4b4)Tff7b72+Te6edf3extTb4b4b4)Tb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3candidate Tff7b72+ Te6edf3osTff7b72.Td2a8ffsepTb4b4b4)Tff7b72.Td2a8ffstartswithTb4b4b4(Te6edf3base_dirTb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149OSErrorTb4b4b4(T79c0ff13Tb4b4b4, Te6edf3osTff7b72.Td2a8ffstrerrorTb4b4b4(T79c0ff13Tb4b4b4)Tb4b4b4)
Tff7b72return Te6edf3candidate


Tff7b72def Td2a8ff_copy_attachment_to_destTb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3src_pathTb4b4b4)Tb4b4b4:
Te6edf3save_path Tff7b72= Te6edf3_resolve_attachment_save_pathTb4b4b4(Te6edf3filenameTb4b4b4)
Te6edf3shutilTff7b72.Td2a8ffcopy2Tb4b4b4(Te6edf3src_pathTb4b4b4, Te6edf3save_pathTb4b4b4)
Tff7b72return Te6edf3save_path


Tff7b72def Td2a8ff_save_attachment_to_diskTb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3save_path Tff7b72= Te6edf3_resolve_attachment_save_pathTb4b4b4(Te6edf3filenameTb4b4b4)
Tff7b72with Tffa657openTb4b4b4(Te6edf3save_pathTb4b4b4, Ta5d6ff"Ta5d6ffwbTa5d6ff"Tb4b4b4) Tff7b72as Te6edf3fTb4b4b4:
Te6edf3fTff7b72.Td2a8ffwriteTb4b4b4(Te6edf3dataTb4b4b4)
Tff7b72return Te6edf3save_path


Tff7b72class T56d364FileBrowserEntryTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Te6edf3signals Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4]

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3full_pathTb4b4b4, Te6edf3is_dirTff7b72=Tff7b72FalseTb4b4b4, Te6edf3is_parentTff7b72=Tff7b72FalseTb4b4b4, Te6edf3selectedTff7b72=Tff7b72FalseTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fffull_path Tff7b72= Te6edf3full_path
Tff7b72selfTff7b72.Td2a8ffname Tff7b72= Te6edf3name
Tff7b72selfTff7b72.Td2a8ffis_dir Tff7b72= Te6edf3is_dir
Tff7b72selfTff7b72.Td2a8ffis_parent Tff7b72= Te6edf3is_parent
Tff7b72selfTff7b72.Td2a8ffselected Tff7b72= Te6edf3selected
Te6edf3g Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72if Te6edf3is_parentTb4b4b4:
Te6edf3display Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_lTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff ..Ta5d6ff"
Tff7b72elif Te6edf3is_dirTb4b4b4:
Te6edf3display Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffarrow_rTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3nameTff7b72+Ta5d6ff"Ta5d6ff/Ta5d6ff"
Tff7b72elif Te6edf3selectedTb4b4b4:
Te6edf3display Tff7b72= Te6edf3gTb4b4b4[Ta5d6ff"Ta5d6ffcheckTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3name
Tff7b72elseTb4b4b4:
Te6edf3display Tff7b72= Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Te6edf3name
Tff7b72selfTff7b72.Td2a8fftext_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffSelectableIconTb4b4b4(Te6edf3displayTb4b4b4, T79c0ff0Tb4b4b4)
Tff7b72if Te6edf3is_dir Tff7b72or Te6edf3is_parentTb4b4b4:
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_trustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Tff7b72elif Te6edf3selectedTb4b4b4:
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_trustedTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focus_trustedTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3style Tff7b72= Ta5d6ff"Ta5d6fflist_unknownTa5d6ff"
Te6edf3focus_style Tff7b72= Ta5d6ff"Ta5d6fflist_focusTa5d6ff"
Te6edf3display_widget Tff7b72= Te6edf3urwidTff7b72.Td2a8ffAttrMapTb4b4b4(Tff7b72selfTff7b72.Td2a8fftext_widgetTb4b4b4, Te6edf3styleTb4b4b4, Te6edf3focus_styleTb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3display_widgetTb4b4b4)

Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffenterTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3key

Tff7b72def Td2a8ffmouse_eventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3buttonTb4b4b4, Te6edf3xTb4b4b4, Te6edf3yTb4b4b4, Te6edf3focusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3button Tff7b72== T79c0ff1 Tff7b72and Te6edf3urwidTff7b72.Td2a8ffutilTff7b72.Td2a8ffis_mouse_pressTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_emitTb4b4b4(Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4)
Tff7b72return Tff7b72True
Tff7b72return Tff7b72False


Tff7b72class T56d364FileBrowserDialogTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3delegateTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegate Tff7b72= Te6edf3delegate
Te6edf3app Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffg Tff7b72= Te6edf3appTff7b72.Td2a8ffuiTff7b72.Td2a8ffglyphs
Tff7b72selfTff7b72.Td2a8ffcurrent_path Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexpanduserTb4b4b4(Ta5d6ff"Ta5d6ff~Ta5d6ff"Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffpath_label Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffstatus_label Tff7b72= Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffile_walker Tff7b72= Te6edf3urwidTff7b72.Td2a8ffSimpleFocusListWalkerTb4b4b4(Tb4b4b4[Tb4b4b4]Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffile_listbox Tff7b72= Te6edf3urwidTff7b72.Td2a8ffListBoxTb4b4b4(Tff7b72selfTff7b72.Td2a8fffile_walkerTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffbutton_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffDoneTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Tff7b72selfTff7b72.Td2a8ff_dismissTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.1Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWEIGHTTb4b4b4, T79c0ff0.45Tb4b4b4, Te6edf3urwidTff7b72.Td2a8ffButtonTb4b4b4(Ta5d6ff"Ta5d6ffCancelTa5d6ff"Tb4b4b4, Te6edf3on_pressTff7b72=Tff7b72selfTff7b72.Td2a8ff_cancelTb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)

Te6edf3header_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Tff7b72selfTff7b72.Td2a8ffpath_labelTb4b4b4,
Tff7b72selfTff7b72.Td2a8ffstatus_labelTb4b4b4,
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Tff7b72selfTff7b72.Td2a8ffgTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)

Te6edf3footer_pile Tff7b72= Te6edf3urwidTff7b72.Td2a8ffPileTb4b4b4(Tb4b4b4[
Te6edf3urwidTff7b72.Td2a8ffDividerTb4b4b4(Tff7b72selfTff7b72.Td2a8ffgTb4b4b4[Ta5d6ff"Ta5d6ffdivider1Ta5d6ff"Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tff7b72selfTff7b72.Td2a8ffbutton_columnsTb4b4b4,
Tb4b4b4]Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ff_populateTb4b4b4(Tb4b4b4)

Tff7b72selfTff7b72.Td2a8ffbrowser_frame Tff7b72= Te6edf3urwidTff7b72.Td2a8ffFrameTb4b4b4(
Tff7b72selfTff7b72.Td2a8fffile_listboxTb4b4b4,
Te6edf3headerTff7b72=Te6edf3header_pileTb4b4b4,
Te6edf3footerTff7b72=Te6edf3footer_pileTb4b4b4,
Tb4b4b4)

Te6edf3linebox Tff7b72= Te6edf3urwidTff7b72.Td2a8ffLineBoxTb4b4b4(Tff7b72selfTff7b72.Td2a8ffbrowser_frameTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffAttach FileTa5d6ff"Tb4b4b4)
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3lineboxTb4b4b4)

Tff7b72def Td2a8ff_update_statusTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3pending Tff7b72= Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachments
Tff7b72if Te6edf3pendingTb4b4b4:
Te6edf3names Tff7b72= Tb4b4b4[Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffbasenameTb4b4b4(Te6edf3pTb4b4b4) Tff7b72for Te6edf3p Tff7b72in Te6edf3pendingTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffstatus_labelTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tff7b72selfTff7b72.Td2a8ffgTb4b4b4[Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4]Tff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Tffa657lenTb4b4b4(Te6edf3pendingTb4b4b4)Tb4b4b4)Tff7b72+Ta5d6ff"Ta5d6ff selected: Ta5d6ff"Tff7b72+Ta5d6ff"Ta5d6ff, Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3namesTb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffstatus_labelTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff No files selectedTa5d6ff"Tb4b4b4)

Tff7b72def Td2a8ff_populateTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpath_labelTff7b72.Td2a8ffset_textTb4b4b4(Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tff7b72selfTff7b72.Td2a8ffcurrent_pathTb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_update_statusTb4b4b4(Tb4b4b4)

Te6edf3focus_pos Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Te6edf3focus_pos Tff7b72= Tff7b72selfTff7b72.Td2a8fffile_listboxTff7b72.Td2a8fffocus_position
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass

Te6edf3entries Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3parent Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffdirnameTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrent_pathTb4b4b4)
Tff7b72if Te6edf3parent Tff7b72!= Tff7b72selfTff7b72.Td2a8ffcurrent_pathTb4b4b4:
Te6edf3entry Tff7b72= Te6edf3FileBrowserEntryTb4b4b4(Ta5d6ff"Ta5d6ff..Ta5d6ff"Tb4b4b4, Te6edf3parentTb4b4b4, Te6edf3is_parentTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffconnect_signalTb4b4b4(Te6edf3entryTb4b4b4, Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ff_entry_clickedTb4b4b4, Te6edf3entryTb4b4b4)
Te6edf3entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3entryTb4b4b4)

Tff7b72tryTb4b4b4:
Te6edf3items Tff7b72= Tffa657sortedTb4b4b4(Te6edf3osTff7b72.Td2a8fflistdirTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrent_pathTb4b4b4)Tb4b4b4)
Tff7b72except Tf85149PermissionErrorTb4b4b4:
Te6edf3entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6fferror_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff Permission deniedTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tff7b72selfTff7b72.Td2a8fffile_walkerTb4b4b4[Tb4b4b4:Tb4b4b4] Tff7b72= Te6edf3entries
Tff7b72return

Te6edf3dirs Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3files Tff7b72= Tb4b4b4[Tb4b4b4]
Tff7b72for Te6edf3item Tff7b72in Te6edf3itemsTb4b4b4:
Tff7b72if Te6edf3itemTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ff.Ta5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72continue
Te6edf3full Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffjoinTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcurrent_pathTb4b4b4, Te6edf3itemTb4b4b4)
Tff7b72if Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisdirTb4b4b4(Te6edf3fullTb4b4b4)Tb4b4b4:
Te6edf3dirsTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4, Te6edf3fullTb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisfileTb4b4b4(Te6edf3fullTb4b4b4)Tb4b4b4:
Te6edf3filesTff7b72.Td2a8ffappendTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4, Te6edf3fullTb4b4b4)Tb4b4b4)

Tff7b72for Te6edf3nameTb4b4b4, Te6edf3full Tff7b72in Te6edf3dirsTb4b4b4:
Te6edf3entry Tff7b72= Te6edf3FileBrowserEntryTb4b4b4(Te6edf3nameTb4b4b4, Te6edf3fullTb4b4b4, Te6edf3is_dirTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffconnect_signalTb4b4b4(Te6edf3entryTb4b4b4, Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ff_entry_clickedTb4b4b4, Te6edf3entryTb4b4b4)
Te6edf3entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3entryTb4b4b4)

Tff7b72for Te6edf3nameTb4b4b4, Te6edf3full Tff7b72in Te6edf3filesTb4b4b4:
Te6edf3is_selected Tff7b72= Te6edf3full Tff7b72in Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachments
Te6edf3entry Tff7b72= Te6edf3FileBrowserEntryTb4b4b4(Te6edf3nameTb4b4b4, Te6edf3fullTb4b4b4, Te6edf3selectedTff7b72=Te6edf3is_selectedTb4b4b4)
Te6edf3urwidTff7b72.Td2a8ffconnect_signalTb4b4b4(Te6edf3entryTb4b4b4, Ta5d6ff"Ta5d6ffclickTa5d6ff"Tb4b4b4, Tff7b72selfTff7b72.Td2a8ff_entry_clickedTb4b4b4, Te6edf3entryTb4b4b4)
Te6edf3entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3entryTb4b4b4)

Tff7b72if Tff7b72not Te6edf3dirs Tff7b72and Tff7b72not Te6edf3filesTb4b4b4:
Te6edf3entriesTff7b72.Td2a8ffappendTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Tb4b4b4(Ta5d6ff"Ta5d6ffinactive_textTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff (empty)Ta5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4)

Tff7b72selfTff7b72.Td2a8fffile_walkerTb4b4b4[Tb4b4b4:Tb4b4b4] Tff7b72= Te6edf3entries
Tff7b72if Te6edf3focus_pos Tff7b72is Tff7b72not Tff7b72None Tff7b72and Te6edf3focus_pos Tff7b72< Tffa657lenTb4b4b4(Te6edf3entriesTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fffile_listboxTff7b72.Td2a8ffset_focusTb4b4b4(Te6edf3focus_posTb4b4b4)
Tff7b72elif Te6edf3entriesTb4b4b4:
Tff7b72selfTff7b72.Td2a8fffile_listboxTff7b72.Td2a8ffset_focusTb4b4b4(T79c0ff0Tb4b4b4)

Tff7b72def Td2a8ff_entry_clickedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3entry_widgetTb4b4b4, Te6edf3user_dataTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3entry Tff7b72= Te6edf3user_data Tff7b72if Te6edf3user_data Tff7b72else Te6edf3entry_widget
Tff7b72if Te6edf3entryTff7b72.Td2a8ffis_dir Tff7b72or Te6edf3entryTff7b72.Td2a8ffis_parentTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcurrent_path Tff7b72= Te6edf3entryTff7b72.Td2a8fffull_path
Tff7b72selfTff7b72.Td2a8ff_populateTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Te6edf3entryTff7b72.Td2a8fffull_path Tff7b72in Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachmentsTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachmentsTff7b72.Td2a8ffremoveTb4b4b4(Te6edf3entryTff7b72.Td2a8fffull_pathTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachmentsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3entryTff7b72.Td2a8fffull_pathTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72selfTff7b72.Td2a8ff_populateTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ff_dismissTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffile_browser_closedTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ff_cancelTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3senderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffpending_attachmentsTff7b72.Td2a8ffclearTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ffframeTff7b72.Td2a8ffcontentsTb4b4b4[Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4] Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8ff_build_footerTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffile_browser_closedTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffescTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdelegateTff7b72.Td2a8fffile_browser_closedTb4b4b4(Tb4b4b4)
Tff7b72return
Te6edf3result Tff7b72= Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffkeypressTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)
Tff7b72if Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffdownTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffbrowser_frameTff7b72.Td2a8fffocus_position Tff7b72== Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbrowser_frameTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6fffooterTa5d6ff"
Tff7b72return
Tff7b72elif Te6edf3result Tff7b72== Ta5d6ff"Ta5d6ffupTa5d6ff" Tff7b72and Tff7b72selfTff7b72.Td2a8ffbrowser_frameTff7b72.Td2a8fffocus_position Tff7b72== Ta5d6ff"Ta5d6fffooterTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffbrowser_frameTff7b72.Td2a8fffocus_position Tff7b72= Ta5d6ff"Ta5d6ffbodyTa5d6ff"
Tff7b72return
Tff7b72return Te6edf3result


Tff7b72class T56d364SyncProgressBarTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffProgressBarTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffget_textTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3status Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffget_sync_statusTb4b4b4(Tb4b4b4)
Te6edf3show_percent Tff7b72= Te6edf3nomadnetTff7b72.Td2a8ffNomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffsync_status_show_percentTb4b4b4(Tb4b4b4)
Tff7b72if Te6edf3show_percentTb4b4b4:
Tff7b72return Te6edf3statusTff7b72+Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72+Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffget_textTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3status


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────